LiveScript

LiveScript 是一种函数式编程语言,可通过源到源编译转译为JavaScript。它由CoffeeScript的作者 与 Satoshi Muramaki、George Zahariev 以及其他许多贡献者共同创建。(该名称可能是对 JavaScript 早期名称的致敬:在 1995 年正式发布前的几个月中,JavaScript 曾被称为 LiveScript。)

语法
LiveScript 是 CoffeeScript 的间接后代。

下面的 Hello World 程序使用 LiveScript 编写,同时也兼容 CoffeeScript:

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

调用函数时可以使用空括号 hello(),但 LiveScript 将感叹号视为“零参数函数调用”的单字符简写:hello!

LiveScript 还引入了一些其他不兼容的语法习惯:

名称改写
在编译时,LiveScript 解析器会隐式地将短横线命名法(带短横线的变量和函数名)转换为驼峰命名法。

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

在此定义下,以下两种调用方式都是合法的。不过,推荐使用相同的短横线语法进行调用。

hello-world!
helloWorld!

这并不妨碍开发者显式使用驼峰命名法或蛇形命名法。不过,短横线命名在符合 LiveScript 习惯用法的代码中非常常见。

管道
管道运算符 |> 会将运算符左侧表达式的结果作为参数传递给右侧的表达式。LiveScript 支持该特性,其他一些函数式语言(如 F# 和 Elixir)也支持管道;在 F# 中,传入的是最后一个参数,而在 Elixir 中则是第一个参数。

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

> Hello!

将运算符作为函数
当使用括号包裹时,诸如 not 或 + 之类的运算符可以被放入管道中,或像函数一样被调用。

111 |> (+) 222

> 333

(+) 1 2

> 3

参考资料

评论 (0)

  • 还没有评论,来抢沙发吧。