由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - Haskell很难学。。
相关主题
FP更接近人的思维怎么这里这么多人学python
王垠新文 为Java说句公道话学FP不是为了写代码, 而是为了优秀的架构.
functional programming?functional programming 哪本书经典适合入门
对 (im)mutability 的误解和深度理解有没有喜欢haskell的同学
我对为什么使用FP的理解 (补)functional programming的两个方面
大牛给讲讲monad吧?C++的牛B之处你们都还没体会到
也谈OOP跟FP之争所谓FP就是 递归+pattern matching?
Scala有一点不好Java 不是纯oo, oo 不是 imperative programming
相关话题的讨论汇总
话题: haskell话题: clojure话题: fp话题: monad话题: 语言
进入Programming版参与讨论
1 (共1页)
T******7
发帖数: 1419
1
买了本书,看得很慢。
其实我是有lisp, 底子的。还是感觉这个很难
读有的代码都挺费劲的 别说自己写了。
有同学也在研究这个么?》交流交流呗
p*****w
发帖数: 429
2
why it?

【在 T******7 的大作中提到】
: 买了本书,看得很慢。
: 其实我是有lisp, 底子的。还是感觉这个很难
: 读有的代码都挺费劲的 别说自己写了。
: 有同学也在研究这个么?》交流交流呗

r*******n
发帖数: 3020
3
你看哪本书? 这个很关键,
learn you haskell for great good这本非常好

【在 T******7 的大作中提到】
: 买了本书,看得很慢。
: 其实我是有lisp, 底子的。还是感觉这个很难
: 读有的代码都挺费劲的 别说自己写了。
: 有同学也在研究这个么?》交流交流呗

e*******o
发帖数: 4654
4
不要急。 haskell 有太多模式性的东西。慢慢来就好了。
w***g
发帖数: 5958
5
monad transformer我一直没练到可以自己写程序的地步, 而不用monad transformer貌
似能做的事情很有限. 我觉得是monad子语言设计的问题. 比如两个带I/O的功能A和B,
procedural language里面可以平等共存, haskell里就得变成不对称的
MonadATransformer套到MonadB上或者反之, 人为引入了不对称性. 一旦有了这种不对
称性, 功能一多就想不清楚了. 而且你要是去看眼Haskell那些应用程序的源代码, 其
实每一个都是用imperative的子语言写的, 跟functional programming P关系都没有.
Haskell语言本身没有问题, 以后完全有可能有人能设计出比monad更加intuitive的
paradigm. 但是我觉得functional programming这个提法有问题. 我有一个猜想: 一
个程序里面本质上可以用functional programming完成的功能, 都可以放到编译阶段完
成(C++的template系统基本上在数学上可以和Haskell等价,就是目前还不是那么干净),
凡是必须引用现实世界的, 不管是haskell还是C++, 都得用imperative language写.
搞Haskell语言的那批人的牛B之处在于把大量在别的语言里需要有编译器做的事情(
functional programming可以实现的部分)都剥离出来, 以一种非常优雅的方式通过
library/子语言实现了.

【在 T******7 的大作中提到】
: 买了本书,看得很慢。
: 其实我是有lisp, 底子的。还是感觉这个很难
: 读有的代码都挺费劲的 别说自己写了。
: 有同学也在研究这个么?》交流交流呗

h***s
发帖数: 1716
6
好。前两天我还在琢磨这里怎么没人讨论讨论哈斯科呐。。。
要不,先说个具体的编程话题吧,来一起聊聊。

【在 T******7 的大作中提到】
: 买了本书,看得很慢。
: 其实我是有lisp, 底子的。还是感觉这个很难
: 读有的代码都挺费劲的 别说自己写了。
: 有同学也在研究这个么?》交流交流呗

r*******n
发帖数: 3020
7
Haskell语言很漂亮,但是monad太丑了,如果直接采用python语法或者ruby就好了。
你后面的猜想俺没有看懂,FP怎么可以在编译阶段完成?
c++ template 充其量算个lisp里的macro,跟haskell语言是不能等价的。

,
),

【在 w***g 的大作中提到】
: monad transformer我一直没练到可以自己写程序的地步, 而不用monad transformer貌
: 似能做的事情很有限. 我觉得是monad子语言设计的问题. 比如两个带I/O的功能A和B,
: procedural language里面可以平等共存, haskell里就得变成不对称的
: MonadATransformer套到MonadB上或者反之, 人为引入了不对称性. 一旦有了这种不对
: 称性, 功能一多就想不清楚了. 而且你要是去看眼Haskell那些应用程序的源代码, 其
: 实每一个都是用imperative的子语言写的, 跟functional programming P关系都没有.
: Haskell语言本身没有问题, 以后完全有可能有人能设计出比monad更加intuitive的
: paradigm. 但是我觉得functional programming这个提法有问题. 我有一个猜想: 一
: 个程序里面本质上可以用functional programming完成的功能, 都可以放到编译阶段完
: 成(C++的template系统基本上在数学上可以和Haskell等价,就是目前还不是那么干净),

t****a
发帖数: 1212
8
我现在主要写Clojure,对haskell很感兴趣,特别是它的静态typing,觉得它可以在编
译阶段找出程序的错误,这点比Clojure强。
但我有些担心这种语言没办法productionize,比如,如何调用别的语言的package?如
何做大规模并行计算?如何做统计/OR的计算?也就是-是不是中看不中用的语言?我想
要的这种静态FP语言要有实际用途才好。
r*******n
发帖数: 3020
9
请问你用clojure写哪方面的程序

【在 t****a 的大作中提到】
: 我现在主要写Clojure,对haskell很感兴趣,特别是它的静态typing,觉得它可以在编
: 译阶段找出程序的错误,这点比Clojure强。
: 但我有些担心这种语言没办法productionize,比如,如何调用别的语言的package?如
: 何做大规模并行计算?如何做统计/OR的计算?也就是-是不是中看不中用的语言?我想
: 要的这种静态FP语言要有实际用途才好。

t****a
发帖数: 1212
10
工作中主要是算法和统计,还有模拟方面的程序,也用来做数据分析。数据量大的时候
可以把clojure配合hadoop来算东西。

【在 r*******n 的大作中提到】
: 请问你用clojure写哪方面的程序
相关主题
大牛给讲讲monad吧?怎么这里这么多人学python
也谈OOP跟FP之争学FP不是为了写代码, 而是为了优秀的架构.
Scala有一点不好functional programming 哪本书经典适合入门
进入Programming版参与讨论
r*******n
发帖数: 3020
11
我感觉clojure在big
data会有用武之地。
各种语言中,clojure算是最近好的了

【在 t****a 的大作中提到】
: 工作中主要是算法和统计,还有模拟方面的程序,也用来做数据分析。数据量大的时候
: 可以把clojure配合hadoop来算东西。

t****a
发帖数: 1212
12
呵呵,每种语言都有它得用武之地... 我这样醉心于很抽象的语言比如clojure也有问
题——直接的问题就是在公司的group里比较孤立,没有人看得懂我写的程序。
这个问题——很孤立——我没办法解决,有朋友可以给我一些建议么?
谢谢!

【在 r*******n 的大作中提到】
: 我感觉clojure在big
: data会有用武之地。
: 各种语言中,clojure算是最近好的了

E*****m
发帖数: 25615
13

這幾乎無解, Haskell/Clojure 對大部份人來講就是 Black Magic, 很難說服人家
和你一起用。 大部份成功例子都是在新公司,年輕人比較願意學新的。
折衷一點,你可以用 Scala。 你可以只用 Functional/Immutable 部分, 當作
用不了 Haskell 的安慰劑。 哈哈!

【在 t****a 的大作中提到】
: 呵呵,每种语言都有它得用武之地... 我这样醉心于很抽象的语言比如clojure也有问
: 题——直接的问题就是在公司的group里比较孤立,没有人看得懂我写的程序。
: 这个问题——很孤立——我没办法解决,有朋友可以给我一些建议么?
: 谢谢!

r*******n
发帖数: 3020
14
你公司不错啊,允许你用自己喜欢的语言去解决问题。
孤立问题,我觉得你把你的问题,转化一下,用一般性语言去表达出来,
比如流程图,再跟别人讨论。

【在 t****a 的大作中提到】
: 呵呵,每种语言都有它得用武之地... 我这样醉心于很抽象的语言比如clojure也有问
: 题——直接的问题就是在公司的group里比较孤立,没有人看得懂我写的程序。
: 这个问题——很孤立——我没办法解决,有朋友可以给我一些建议么?
: 谢谢!

t****a
发帖数: 1212
15
谢谢指点,是很难说服别人,因此通常只能独立工作。

【在 E*****m 的大作中提到】
:
: 這幾乎無解, Haskell/Clojure 對大部份人來講就是 Black Magic, 很難說服人家
: 和你一起用。 大部份成功例子都是在新公司,年輕人比較願意學新的。
: 折衷一點,你可以用 Scala。 你可以只用 Functional/Immutable 部分, 當作
: 用不了 Haskell 的安慰劑。 哈哈!

t****a
发帖数: 1212
16
是的,这点上非常喜欢我们公司,这样的机会难得。
流程图的建议很好。事实上我写Functional programming语言就喜欢自己先画一个数据
流程图,帮助自己搞清楚逻辑的。

【在 r*******n 的大作中提到】
: 你公司不错啊,允许你用自己喜欢的语言去解决问题。
: 孤立问题,我觉得你把你的问题,转化一下,用一般性语言去表达出来,
: 比如流程图,再跟别人讨论。

h***s
发帖数: 1716
17
Sorry I have to type in English here.
I wouldn't worry about Haskell's practical usefulness. One point might be
relevant to you is that, complex algorithms/intensive computations and big
data always want the better parallelism and performance. Clojure or Haskell,
which one has the better odd? Did you have any reasonales/data on this kind
of comparison? I would suggest that be a good point to consider. Just a
thought...

【在 t****a 的大作中提到】
: 我现在主要写Clojure,对haskell很感兴趣,特别是它的静态typing,觉得它可以在编
: 译阶段找出程序的错误,这点比Clojure强。
: 但我有些担心这种语言没办法productionize,比如,如何调用别的语言的package?如
: 何做大规模并行计算?如何做统计/OR的计算?也就是-是不是中看不中用的语言?我想
: 要的这种静态FP语言要有实际用途才好。

d***q
发帖数: 1119
18
c++ template是图灵完备的,不知道Lisp macro是不是。
c++也有人用template,利用编译期间进行计算,仿真类似functional programming的
技巧。
不过不知道用得多不多,反正我从来没用过。

【在 r*******n 的大作中提到】
: Haskell语言很漂亮,但是monad太丑了,如果直接采用python语法或者ruby就好了。
: 你后面的猜想俺没有看懂,FP怎么可以在编译阶段完成?
: c++ template 充其量算个lisp里的macro,跟haskell语言是不能等价的。
:
: ,
: ),

s*********e
发帖数: 1051
19
just out of curiosity.
between haskell and clojure, which one has richer library supports and is
more suitable for machine learning / statistics?
truly appreciate your insights.
E*****m
发帖数: 25615
20

Clojure 可以直接用 Java library, Haskell 當然比不上。
本身語言特性來說, Haskell 嚴謹點, Clojure 自由點,各有長處。

【在 s*********e 的大作中提到】
: just out of curiosity.
: between haskell and clojure, which one has richer library supports and is
: more suitable for machine learning / statistics?
: truly appreciate your insights.

相关主题
有没有喜欢haskell的同学所谓FP就是 递归+pattern matching?
functional programming的两个方面Java 不是纯oo, oo 不是 imperative programming
C++的牛B之处你们都还没体会到板上的高人们能给科普比较functional programming language么
进入Programming版参与讨论
d***q
发帖数: 1119
21
clojure 相对比较实用。
haskell 是pure functional language。完全没有side effect,这个不总是都很方便
。特别是涉及io和其他库的交互。
t****a
发帖数: 1212
22
Hickey: I think Haskell is a fantastic, awe-inspiring piece of work. I haven
’t used it in anger, but it certainly was a positive influence. Haskell
obviously goes much further than Clojure in pursuing the ideals of
functional programing. In particular they differ in the approach to using
types to enforce things.
连rich hickey都这么说,搞FP的筒子门还有什么犹豫的阿。
p*****2
发帖数: 21240
23

haven
大牛说说到底都有什么地方搞FP呢?

【在 t****a 的大作中提到】
: Hickey: I think Haskell is a fantastic, awe-inspiring piece of work. I haven
: ’t used it in anger, but it certainly was a positive influence. Haskell
: obviously goes much further than Clojure in pursuing the ideals of
: functional programing. In particular they differ in the approach to using
: types to enforce things.
: 连rich hickey都这么说,搞FP的筒子门还有什么犹豫的阿。

n*w
发帖数: 3393
24
倒是很想学,但是因工作和个人项目里都用不上而缺少推动力。

haven

【在 t****a 的大作中提到】
: Hickey: I think Haskell is a fantastic, awe-inspiring piece of work. I haven
: ’t used it in anger, but it certainly was a positive influence. Haskell
: obviously goes much further than Clojure in pursuing the ideals of
: functional programing. In particular they differ in the approach to using
: types to enforce things.
: 连rich hickey都这么说,搞FP的筒子门还有什么犹豫的阿。

t****a
发帖数: 1212
25
不知道诶,就当玩吧。不想那么多了。

【在 p*****2 的大作中提到】
:
: haven
: 大牛说说到底都有什么地方搞FP呢?

n*w
发帖数: 3393
26
I went to several f# seminar. financial area uses f# for number crunching, I
heard.

【在 t****a 的大作中提到】
: 不知道诶,就当玩吧。不想那么多了。
p*****2
发帖数: 21240
27

为什么个人项目里边不用用?

【在 n*w 的大作中提到】
: 倒是很想学,但是因工作和个人项目里都用不上而缺少推动力。
:
: haven

t****a
发帖数: 1212
28
good to know阿,莫非想玩FP,career path就变成矿工了?

I

【在 n*w 的大作中提到】
: I went to several f# seminar. financial area uses f# for number crunching, I
: heard.

n*w
发帖数: 3393
29
my current personal projects are too simple to use FP

【在 p*****2 的大作中提到】
:
: 为什么个人项目里边不用用?

n*w
发帖数: 3393
30
I don't know what quant developers do. anyone give me a kepu ?

【在 t****a 的大作中提到】
: good to know阿,莫非想玩FP,career path就变成矿工了?
:
: I

相关主题
想学FP最好不要从Scala开始王垠新文 为Java说句公道话
这次Scala没有入选有点意外呀functional programming?
FP更接近人的思维对 (im)mutability 的误解和深度理解
进入Programming版参与讨论
a*****e
发帖数: 1700
31
中文资料可以到 haskellcn.org 去看看
英文的就多了,论坛 reddit.com/r/haskell,或者直接加入邮件组

【在 T******7 的大作中提到】
: 买了本书,看得很慢。
: 其实我是有lisp, 底子的。还是感觉这个很难
: 读有的代码都挺费劲的 别说自己写了。
: 有同学也在研究这个么?》交流交流呗

a*****e
发帖数: 1700
32
工业界主要是银行,比如 Goldman Sachs, Merril Lynch, Standard Chartered, Jane
Street, 和一些更小的 Hedge Fund.
然后 Facebook 最近把 Haskell/GHC 的主要作者之一 Simon Marlow 给挖走了。
Realworld Haskell 的作者之一 Bryan O'Sullivan 也在 Facebook 做了快一年了吧。
Twitter 用 Scala (和 Clojure ?),Ericsson 用 Erlang,还有用 FP 的多是一些小
的公司。关注工业应用的可以上 CUFP.org 去看看。
学术界就多了,不一一列举。如今学术界 FP 这一块最前沿的研究 90% 都是在
Haskell 及其衍生的语言上做的,这也可以作为一个学习 Haskell 的理由。
Haskell 另一个工业界适用的领域是 Domain Specific Language 的实现和嵌入,有
type system 的帮助,和各种抽象模式 (functor/monad/arrow/etc.) 的运用,在这方
面表达能力相当强大,也很灵活。

【在 p*****2 的大作中提到】
:
: 为什么个人项目里边不用用?

p*****2
发帖数: 21240
33

FP can make your work even much simpler吧。

【在 n*w 的大作中提到】
: my current personal projects are too simple to use FP
p*****2
发帖数: 21240
34
昨晚看了一下,没感觉难学呀。LZ能不能谈谈难点到底在什么地方呢?谢谢。
E*****m
发帖数: 25615
35

Monad, Monad Transformer
這個搞懂的話,應該都不難了。

【在 p*****2 的大作中提到】
: 昨晚看了一下,没感觉难学呀。LZ能不能谈谈难点到底在什么地方呢?谢谢。
p*****2
发帖数: 21240
36

不好意思。还没看到。今天扫扫。

【在 E*****m 的大作中提到】
:
: Monad, Monad Transformer
: 這個搞懂的話,應該都不難了。

c*******9
发帖数: 9032
37
丑在哪?我想学 Haskell就是因为有这类Category theory里的优美概念。

【在 r*******n 的大作中提到】
: Haskell语言很漂亮,但是monad太丑了,如果直接采用python语法或者ruby就好了。
: 你后面的猜想俺没有看懂,FP怎么可以在编译阶段完成?
: c++ template 充其量算个lisp里的macro,跟haskell语言是不能等价的。
:
: ,
: ),

n****1
发帖数: 1136
38
monad的却有不对称的问题, 但是那是由它的数学结构决定的,Haskell也没办法哦.
其实monad早就不是唯一的选择,譬如写parser,monad的限制就太强了. Alternatives有
functor/applicative functor/arrow/iterable这类的啊. 而且applicative functor
应该是对称的. 现在的parser很多用arrow, 比如hxt(xml parser).
关于do block:
haskell官方wiki里面是不鼓励大家滥用do block的, 的却, do block很多情况可以
被>>=代替.
但我个人觉得完全不是问题啊! Haskell所有东西是immutable的,也就是说referential
transparency在do block里面也能保证, 那这玩意就算再像imperative些(其实骨子里
还是FP),再丑陋些, 也不会影响逻辑或者程序的正确性吧.
换句话说,如果c语言没有指针,所以变量都是immutable,那c也是FP.

,
),

【在 w***g 的大作中提到】
: monad transformer我一直没练到可以自己写程序的地步, 而不用monad transformer貌
: 似能做的事情很有限. 我觉得是monad子语言设计的问题. 比如两个带I/O的功能A和B,
: procedural language里面可以平等共存, haskell里就得变成不对称的
: MonadATransformer套到MonadB上或者反之, 人为引入了不对称性. 一旦有了这种不对
: 称性, 功能一多就想不清楚了. 而且你要是去看眼Haskell那些应用程序的源代码, 其
: 实每一个都是用imperative的子语言写的, 跟functional programming P关系都没有.
: Haskell语言本身没有问题, 以后完全有可能有人能设计出比monad更加intuitive的
: paradigm. 但是我觉得functional programming这个提法有问题. 我有一个猜想: 一
: 个程序里面本质上可以用functional programming完成的功能, 都可以放到编译阶段完
: 成(C++的template系统基本上在数学上可以和Haskell等价,就是目前还不是那么干净),

1 (共1页)
进入Programming版参与讨论
相关主题
Java 不是纯oo, oo 不是 imperative programming我对为什么使用FP的理解 (补)
板上的高人们能给科普比较functional programming language么大牛给讲讲monad吧?
想学FP最好不要从Scala开始也谈OOP跟FP之争
这次Scala没有入选有点意外呀Scala有一点不好
FP更接近人的思维怎么这里这么多人学python
王垠新文 为Java说句公道话学FP不是为了写代码, 而是为了优秀的架构.
functional programming?functional programming 哪本书经典适合入门
对 (im)mutability 的误解和深度理解有没有喜欢haskell的同学
相关话题的讨论汇总
话题: haskell话题: clojure话题: fp话题: monad话题: 语言