| パラダイム | マルチパラダイム、関数型、オブジェクト指向 |
|---|---|
| デザイン: | ジェレミー・アシュケナス、村上聡、ジョージ・ザハリエフ |
| 開発者 | (同じ) |
| 初登場 | 2011年 |
| 安定版リリース | 1.6.1 / 2020年7月14日[1] |
| タイピングの規律 | ダイナミック、弱い |
| 範囲 | 語彙 |
| OS | クロスプラットフォーム |
| ライセンス | マサチューセッツ工科大学 |
| ファイル名拡張子 | .ls |
| Webサイト | ライブスクリプト |
| 影響を受けた | |
| JavaScript、Haskell、CoffeeScript、F# | |
LiveScript はJavaScriptにトランスパイルする関数型 プログラミング言語です。CoffeeScriptの作者であるJeremy AshkenasがSatoshi Muramaki、George Zahariev らと共同で開発しました。 [2] (この名前は JavaScript のベータ版の名前に敬意を表したものかもしれません。1995 年の数か月間、正式リリース前に LiveScript と呼ばれていました。[3] )
構文
LiveScriptはCoffeeScriptの間接的な子孫です。[4]次の「Hello, World!」プログラムはLiveScriptで書かれていますが、Coffeescriptとも互換性があります。
hello = ->コンソール。ログに'hello, world!'と出力します。
関数の呼び出しは空の括弧を使用して行うことができますがhello()、LiveScript では感嘆符を引数なしの関数呼び出しの 1 文字の省略形として扱います。hello!
LiveScript では、他にも互換性のない慣用句が数多く導入されています。
名前のマングリング
コンパイル時に、LiveScript パーサーはケバブケース(ダッシュ付きの変数と関数名) をキャメルケースに暗黙的に変換します。
hello-world = ->コンソール. log 'Hello, World!'
この定義では、次の両方の呼び出しが有効です。ただし、同じダッシュ構文を使用して呼び出すことをお勧めします。
こんにちは世界!
こんにちは世界!
これは、開発者が明示的にキャメルケースを使用したり、スネークケースを使用したりすることを妨げるものではありません。ただし、ダッシュによる命名は慣用的なLiveScriptでは一般的です[5]
パイプ
パイプ演算子は、 |>演算子の左側の式の結果を、右側の式の引数として渡します。LiveScript は、F#やElixirなどの他の関数型言語と同様に、これをサポートしています。F# で渡される引数は最後の引数ですが、Elixir では最初の引数です。
"hello!" |>大文字|> console . log # > こんにちは!
関数としての演算子
notまたは などの演算子を括弧で囲むと、+パイプラインに含めたり、関数のように呼び出したりすることができます。
111 |> ( + ) 222 # > 333
(+ )1 2 # > 3
参考文献
- ^ 「LiveScript リリース」。GitHub。2021年2 月 21 日閲覧。
- ^ 「LiveScript 貢献者ページ」。GitHub。2015年6 月 20 日閲覧。
- ^ 「第4章 JavaScript がどのように作成されたか」。speakingjs.com。 2020年2月27日時点のオリジナルよりアーカイブ。2017年11月21日閲覧。
- ^ 「LiveScript - JavaScript にコンパイルされる言語」。
- ^ 「prelude.ls - LiveScript の機能指向ユーティリティ ライブラリ」。
外部リンク
- 公式サイト
