想学习一种FP语言,你的推荐会是什么?


#21

鉴于 Elm 的特性以及所处的位置,它应该跟 ClojureScript、PureScript、ReasonML… 这些相提并论。

「前景」具体是指什么?如果包括拼爹的话,那么 Elm 似乎并不乐观,倒是 Reason 有两个爹:

图片来自 https://www.imaginarycloud.com/blog/reasonml-react-as-first-intended/


#22

入门还是看TSPL 4th吧。


#23

Elixir
原因嘛,实用。

idris,想学中。。。


#24

感谢回复。

有一个问题,我如果现在把 Elm 换成 Elixir,投票结果会被清零吗? @LdBeth


#25

顺便加个 Erlang :joy:


#26

会的,投票一创建就不能改了。


#27

不如一步到位学一个 Proof Assistant…比如 Coq, Agda…


#28

Lisp既然涵盖的特性多,为什么在FP方面,还要推荐haskell呢?就因为它是纯FP语言?还是在FP方面,haskell的特性更多?

我现在停留在使用lambda的水平,并且还不清楚untyped和typed的区分。除了lambda之外,FP还有什么高级特性。方便的话,帮罗列一下,我抽点时间了解一下。

我现在正在学CL,还有必要学haskell吗?毕竟时间是有限的。


#29

那应该选Coq 还是Agda 还是…


#30

F# 或者 Clojure,背靠CLR或者JVM,容易复用现成库或者和现有代码集成。


#31

实际上不会一门 FP 完全没法学定理证明器,因为不管 Coq 还是 Agda 它们的资料既不会教你 FP (只会教点最基本的 Dependent type 作为 demo,默认你基础的 Martin-Löf 什么的全会),也不会教你定理证明(不会证明用证明器干嘛)。


#32

不用学,因为你连 CL 都不见得能学会多少。

你们吹的 SICP 实际上是基本功里的基本功,连这个都没过说明连 lambda calculus 都没摸到。


#33

好吧,我也是感兴趣学学。

至于这里的lambda calculus,和golang,rust中的lambda有什么区别,我也不太清楚,有什么资料的话,希望给提供一下。

下面就是所说的基础书籍吧?


#34

帽子和帽子的图片的区別。加法和加法符號的区別。


#35

Proof Assistant 也不能一步到位

还有线性类型、高级子类型、以及各种morphism。。。


#36

Haskell的话 主要参考这份 LambdaConf 提出的 《函数式编程技能表》


#37

Rust.

请看这位大神的文章:https://people.mpi-sws.org/~dreyer/research.pdf

直接看第三段: How can we provide programmers with both safety and control?

这给了我审视语言的新角度。


#38

我是用coq。

感觉学术界用coq的更多(近年来验证相关的论文好像没看到用Agda的, 只看到用Coq和 Isabelle的), 而且Coq还有牛人写的tactic库(虽然我还没看…)


#39

用了一阵子觉得rust更像是oop语言,操作闭包麻烦得要死


#41

Haskell 这么受欢迎的吗?社区里好像没有几个 Haskell 黑客啊