请推荐使用模式匹配的解释语言

yor*_*ble 1 haskell functional-programming scripting-language interpreted-language pattern-matching

我正在寻找一种易于快速编写脚本的解释语言,如但它具有更多的Haskell感觉(即一种函数式语言).

具体来说,我希望它具有像haskell一样的模式匹配功能.这样的事情存在吗?

编辑:我主要问,因为我喜欢学习新语言,我注意到我学习的语言中有空位.
一方面,我已经解释并动态地输入了具有功能元素的Python和Ruby等语言,但并没有把这个概念放得太过分.
另一方面,我有Haskell,它具有我喜欢的许多功能特性,但是非常严格(我需要花费相当多的时间来完成简单的程序).
我只是想知道是否存在分裂这些差异的东西.

bma*_*her 13

哈斯克尔

您可以使用它runhaskell来执行haskell文件.该文件立即像python脚本一样运行.

runhaskell test.hs
Run Code Online (Sandbox Code Playgroud)

打印 Hello Wolrd!

如果test.hs包含

main = putStrLn "Hello World!"
Run Code Online (Sandbox Code Playgroud)

斯卡拉

另一种不太纯粹的语言是Scala.它以JVM为目标,因此可以使用所有Java库.您可以将其用作脚本:

scala test.scala
Run Code Online (Sandbox Code Playgroud)

test.scala只是:

println("Hello, World!")
Run Code Online (Sandbox Code Playgroud)

对于模式匹配,有匹配情况:

def headSafe[A](arg: List[A]):Option[A] = arg match {
  case x::xs => Some(x)
  case _     => None
}
Run Code Online (Sandbox Code Playgroud)

Option对应于MaybeHaskells monand.如果您对scala感兴趣,可以查看http://scala-lang.org