由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - monad就是一chaining pattern
相关主题
我对为什么使用FP的理解 (补)学FP不是为了写代码, 而是为了优秀的架构.
Haskell很难学。。这次Scala没有入选有点意外呀
scala和monad看来跳了Scala的坑是对的
Learn monad in 10 minuteshaskell 真是逆天, 各种特殊符号都有特殊用途
FP更接近人的思维aop实际上是monad
Java 不是纯oo, oo 不是 imperative programmingScala的map和flatmap什么区别?
大牛给讲讲monad吧?functional programming?
想学FP最好不要从Scala开始也谈OOP跟FP之争
相关话题的讨论汇总
话题: monad话题: ambarith话题: chaining话题: fp话题: pattern
进入Programming版参与讨论
1 (共1页)
l**********n
发帖数: 8443
1
说白了
c******o
发帖数: 1277
2
in some sense, right
but what you said is like
object just package code and data together.
kind of too short
z****e
发帖数: 54598
3
感觉fp挺无聊其实
很多人只是死记硬背
不仅对fp不懂,对oop更是不懂
本来从oop过渡到fp是比较合理的
现在情况是很多人是oop搞不清楚
以为弄了fp就高大上了,结果是两个p都不懂
一深入就露馅,fp和oop配合起来真是管用
楼上的经验很多都可以直接挪用到java上
刚用了点immutable,hoho
p*****2
发帖数: 21240
4
oo和fp根本不矛盾

【在 z****e 的大作中提到】
: 感觉fp挺无聊其实
: 很多人只是死记硬背
: 不仅对fp不懂,对oop更是不懂
: 本来从oop过渡到fp是比较合理的
: 现在情况是很多人是oop搞不清楚
: 以为弄了fp就高大上了,结果是两个p都不懂
: 一深入就露馅,fp和oop配合起来真是管用
: 楼上的经验很多都可以直接挪用到java上
: 刚用了点immutable,hoho

l**********n
发帖数: 8443
5
fp还是挺有意思的。一种不同的思维方式吧。

【在 z****e 的大作中提到】
: 感觉fp挺无聊其实
: 很多人只是死记硬背
: 不仅对fp不懂,对oop更是不懂
: 本来从oop过渡到fp是比较合理的
: 现在情况是很多人是oop搞不清楚
: 以为弄了fp就高大上了,结果是两个p都不懂
: 一深入就露馅,fp和oop配合起来真是管用
: 楼上的经验很多都可以直接挪用到java上
: 刚用了点immutable,hoho

c******o
发帖数: 1277
6
learning fp, even not using it make you a better developer
l**********n
发帖数: 8443
7
fp最难的就是monad了吧。

【在 c******o 的大作中提到】
: learning fp, even not using it make you a better developer
c******o
发帖数: 1277
8
monadfix , arrowloop
comonad我都没有用好过
前两个很神奇,lazy value 自反馈自编程
最后一个在音频视频和历史数据 aggregration用的多。
functor,applicative,monad三者的关系和区别是fp核心知识之一

【在 l**********n 的大作中提到】
: fp最难的就是monad了吧。
b***e
发帖数: 1419
9
顶。I pretty much said the same.

【在 c******o 的大作中提到】
: learning fp, even not using it make you a better developer
b***e
发帖数: 1419
10
By monadfix you do you mean recursive monad binding (Levent Erkok 2000)? It
is certainly fancy but I can hardly find any real use of it.

【在 c******o 的大作中提到】
: monadfix , arrowloop
: comonad我都没有用好过
: 前两个很神奇,lazy value 自反馈自编程
: 最后一个在音频视频和历史数据 aggregration用的多。
: functor,applicative,monad三者的关系和区别是fp核心知识之一

相关主题
Java 不是纯oo, oo 不是 imperative programming学FP不是为了写代码, 而是为了优秀的架构.
大牛给讲讲monad吧?这次Scala没有入选有点意外呀
想学FP最好不要从Scala开始看来跳了Scala的坑是对的
进入Programming版参与讨论
a*****e
发帖数: 1700
11
One use case: to construct cyclic graph where each node has a unique ID.
To have unique ID, you need a state monad. To make cyclic graph symbolically
, you need the ability to reference nodes that is only defined afterwards.

It

【在 b***e 的大作中提到】
: By monadfix you do you mean recursive monad binding (Levent Erkok 2000)? It
: is certainly fancy but I can hardly find any real use of it.

a*****e
发帖数: 1700
12
这种理解方式可以上路,但走不远。建议从 fmap/return/join 来理解 monad,或者学
习以下怎么用 monad 来表达 non-determinism 和 continuation.

【在 l**********n 的大作中提到】
: 说白了
c******o
发帖数: 1277
13
你这个太高大上了。
我基本还是以工作可以用啥来学习的。

【在 a*****e 的大作中提到】
: 这种理解方式可以上路,但走不远。建议从 fmap/return/join 来理解 monad,或者学
: 习以下怎么用 monad 来表达 non-determinism 和 continuation.

l*********s
发帖数: 5409
14
wow, 以后面试也别考算法,就考对monad的理解吧 :-)

【在 c******o 的大作中提到】
: monadfix , arrowloop
: comonad我都没有用好过
: 前两个很神奇,lazy value 自反馈自编程
: 最后一个在音频视频和历史数据 aggregration用的多。
: functor,applicative,monad三者的关系和区别是fp核心知识之一

a*****e
发帖数: 1700
15
我贴一个算24的程序吧(不是我写的),理解了 list monad 的都应该能明白。
make24 :: [Ratio Int] -> Bool
make24 = not . null . filter (==24%1) . ambArith
ambArith :: [Ratio Int] -> [Ratio Int]
ambArith [] = []
ambArith [x] = [x]
ambArith ns = do
let pickOne s = map (x -> (x, delete x s)) s
(x, xs) <- pickOne ns
(y, ys) <- pickOne xs
op <- [(+), (-), (*)] ++ [(/) | y /= 0]
ambArith $ (op x y) : ys
简单改改就可以不仅返回可能性而且输出算式,作为练习题吧。

【在 c******o 的大作中提到】
: 你这个太高大上了。
: 我基本还是以工作可以用啥来学习的。

c******o
发帖数: 1277
16
贴code不解释几乎是没用的, 大部分人(没有haskell/FP经验的)都要先研究1天才明
白是啥,然后再1天明白是
想说明啥。

【在 a*****e 的大作中提到】
: 我贴一个算24的程序吧(不是我写的),理解了 list monad 的都应该能明白。
: make24 :: [Ratio Int] -> Bool
: make24 = not . null . filter (==24%1) . ambArith
: ambArith :: [Ratio Int] -> [Ratio Int]
: ambArith [] = []
: ambArith [x] = [x]
: ambArith ns = do
: let pickOne s = map (x -> (x, delete x s)) s
: (x, xs) <- pickOne ns
: (y, ys) <- pickOne xs

a*****e
发帖数: 1700
17
我是做个试验,要给那些把 monad 理解为 chaining pattern 的人看,能否读懂这个
程序。也没几行,可以通过学习增进理解,而不是靠我解释,是吧。

【在 c******o 的大作中提到】
: 贴code不解释几乎是没用的, 大部分人(没有haskell/FP经验的)都要先研究1天才明
: 白是啥,然后再1天明白是
: 想说明啥。

l**********n
发帖数: 8443
18
很容易理解啊。比scala规范多了啊。

【在 a*****e 的大作中提到】
: 我是做个试验,要给那些把 monad 理解为 chaining pattern 的人看,能否读懂这个
: 程序。也没几行,可以通过学习增进理解,而不是靠我解释,是吧。

g*****g
发帖数: 34805
19
多学点东西是好的,只不过这里学个Helloworld出来装逼的实在太多了。

【在 c******o 的大作中提到】
: learning fp, even not using it make you a better developer
1 (共1页)
进入Programming版参与讨论
相关主题
也谈OOP跟FP之争FP更接近人的思维
OOP里面的Object其实是actorJava 不是纯oo, oo 不是 imperative programming
批判 go大牛给讲讲monad吧?
其实想学就学fp,不学就算了想学FP最好不要从Scala开始
我对为什么使用FP的理解 (补)学FP不是为了写代码, 而是为了优秀的架构.
Haskell很难学。。这次Scala没有入选有点意外呀
scala和monad看来跳了Scala的坑是对的
Learn monad in 10 minuteshaskell 真是逆天, 各种特殊符号都有特殊用途
相关话题的讨论汇总
话题: monad话题: ambarith话题: chaining话题: fp话题: pattern