跳去內容

LiveScript

出自維基百科,自由嘅百科全書
  假如你想揾嘅係最初被稱為 LiveScript 嘅主要網頁腳本語言,請睇「JavaScript」。
LiveScript
編程範式多範式, 函數式, 面向對象
設計者Jeremy Ashkenas, Satoshi Murakami, George Zahariev
編程員(同上)
第一次出現7月14,5年之前 (2020-07-14)[1]
穩定版本
1.6.1
類型系統動態, 弱類型
有效範圍詞法作用域
操作系統跨平台
軟件授權MIT
副檔名.ls
網站livescript.net
啟發語言
JavaScript, Haskell, CoffeeScript, F#

LiveScript 係一種函數式編程語言,可以透過源到源編譯轉譯成JavaScript。佢由 CoffeeScript 嘅作者 Jeremy Ashkenas英文Jeremy Ashkenas,同 Satoshi Murakami、George Zahariev 以及其他唔少貢獻者一齊創作。[2] (個名有可能係向 JavaScript 早期名稱致敬:喺 1995 年正式發佈之前嗰幾個月,JavaScript 曾經叫做 LiveScript。[3]

語法

[編輯]

LiveScript 係 CoffeeScript 嘅間接後代。[4]

下面係一個用 LiveScript 寫嘅 Hello World 程式,同時亦都兼容 CoffeeScript:

hello = ->
  console.log 'hello, world!'

呼叫函數嘅時候可以用空括號 hello(),不過 LiveScript 會將感嘆號視為「零參數函數呼叫」嘅單字符簡寫:hello!

LiveScript 仲引入咗一啲其他唔兼容嘅語法習慣:

名稱改寫

[編輯]

喺編譯期間,LiveScript 嘅解析器會隱式噉將短橫線命名法(即係帶短橫線嘅變量同函數名)轉換成駝峰命名法

hello-world = ->
  console.log 'Hello, World!'

喺呢個定義之下,以下兩種呼叫方式都係合法嘅。不過,一般建議用返同一套短橫線語法去呼叫。

hello-world!
helloWorld!

呢個機制唔會妨礙開發者顯式噉使用駝峰命名法或者蛇形命名法。不過,喺符合 LiveScript 習慣用法嘅程式碼入面,短橫線命名法都幾常見。[5]

管道

[編輯]

管道運算符 |> 會將運算符左邊表達式嘅結果,當成參數傳畀右邊嘅表達式。LiveScript 支援呢個特性;其他一啲函數式語言(例如 F#Elixir)亦都有類似支援。不過,喺 F# 入面,傳入嘅係最後一個參數,而喺 Elixir 入面就係第一個參數。

"hello!" |> capitalize |> console.log
# > Hello!

將運算符當成函數

[編輯]

當用括號包住嘅時候,好似 not+ 呢啲運算符,可以放入管道入面,或者好似普通函數噉呼叫。

111 |> (+) 222
# > 333

(+) 1 2
# > 3

參考資料

[編輯]
  1. "LiveScript Releases". GitHub. 原著喺2025-12-31歸檔. 喺2021年2月21日搵到.
  2. "LiveScript contributors page". GitHub. 原著喺2026-01-01歸檔. 喺2015年6月20日搵到.
  3. "Chapter 4. How JavaScript Was Created". speakingjs.com. 原先內容歸檔喺2020-02-27. 喺2017-11-21搵到.
  4. "LiveScript - a language which compiles to JavaScript". 原著喺2021-05-21歸檔. 喺2026-01-31搵到.
  5. prelude.ls - 一個以函數式為導向嘅 LiveScript 工具庫原著喺2025-12-17歸檔。喺2026-01-31搵到