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

 参考资料 

Category:使用MIT许可证的软件
Category:JavaScript语言家族