跳轉到內容

Plezuro/入門

來自華夏公益教科書

Plezuro 程式語言的主要原則之一是:“模組、函式和原始檔是等價的”。 這到底意味著什麼? 您可以像傳遞給函式一樣傳遞引數給模組,並且模組也像函式一樣返回值。

Hello world

[編輯 | 編輯原始碼]

在開始之前:如何在 Plezuro 中編寫 Hello World 指令碼? 它很簡單

'Hello World!'

當然,語言的設計甚至可以更簡單

Hello World!

但這更像是標記語言(最終是模板語言),而不是程式語言。 所以前面的指令碼是不正確的。 此外,還存在其他編寫 Hello World 指令碼的可能性,例如

'Hello World!'.printl;

在第一個指令碼中,模組只是返回一個值(字串 'Hello World!'),而在最後一個指令碼中,它將此字串列印到標準輸出,最後返回空值(稱為 'empty',其符號:'()')。

為簡單起見,註釋採用 c++/Java/c# 風格。 因此,它可以註釋掉大量程式碼,這與 python 或 ruby 等語言形成對比(當然,您可以在兩種情況下都使用多行字串,但在許多情況下,它會輸出錯誤)。

// this is a comment
/*
Another comment
*/

像任何(包括非常奇怪的,幾乎任何)語言一樣,Plezuro 基於使用變數。 我敢肯定您已經知道什麼是變量了(如果沒有,它只是一個資訊容器)。 因此,在變數首次出現時,您應該在變數名前面立即寫下美元符號 ('$')。 名稱採用 Java 風格(它允許使用任何 Unicode 字母、數字和下劃線,但開頭不能有字母)。 在接下來的出現中,美元符號是不需要的。 我們為什麼要寫那麼多 '$'? 這看起來像 PHP、Perl 或 bash。 原因很簡單。 僅僅是為了定義變數範圍。 它就像 Javascript 中的 'var' 關鍵字(或在 c♯ 中,如果使用的是區域性變數),但在 Plezuro 中,它只是簡寫(一個字元 '$' 而不是四個字元 'var')。 對於簡短的匿名函式和字串中編寫的程式碼的評估來說,這是一個非常重要的功能。 讓我們寫一個奇怪的例子

$假借字=4;
假借字+假借字^2

現在,也許不那麼奇怪了

$x=4;
x+x^2

語言的本質

[編輯 | 編輯原始碼]

與其他程式語言不同,其他程式語言在函式中只有一系列指令,Plezuro 基於運算子。 命令用分號 (';') 分隔,但這只是多個運算子之一。 即使在中間程式碼中,變數賦值和函式呼叫也轉換為運算子。 只有括號 ('(', ')') 和大括號 ('{', '}') 不會轉換為運算子。 它們有什麼用? 因此,括號用於更改運算子計算的順序,而大括號用於寫下將來應該執行(或最終永遠不會執行)的程式碼。 這意味著大括號用於編寫函式定義、條件迴圈或條件表示式(在這些情況下,我們也有一些函式 - 匿名函式)。

2*(3+4)^5.4


$x = 5;
{2<3}.if{x++}.else{x--};
x

運算子優先順序

[編輯 | 編輯原始碼]

雙引數運算子

  • ;
  • :=
  • =
  • ,
  • <->
  • <<
  • >>
  • ?
  • |
  • &
  • <=>
  • >=
  • >
  • <=
  • <
  • !=
  • ==
  • ===
  • =~
  • -
  • %
  • *
  • /
  • ^
  • 一起
       * ^^
       * .
  • ..
  • :

單引數運算子:(但是這裡並不重要,重要的是列表。

  • !
  • &&
  • **
  • #
  • --
  • --
  • @

重要事項

[編輯 | 編輯原始碼]

此外,您應該記住以下內容

  1. 空格字元不包含在中間程式碼中(這意味著您可以在令牌(數字/字串/名稱/運算子...)之間寫任意數量的空格、製表符和換行符,當然您不能在變數名稱或運算子中間寫空格)。
  2. Plezuro 的一個非常重要的問題是元組。 您可以將它用於將儲存所有這些引數的一個變數傳遞給多引數函式。 此外,您可以在類似於 Python 的方式中使用它。
華夏公益教科書