由买买提看人间百态

topics

全部话题 - 话题: monad
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
a*****e
发帖数: 1700
1
来自主题: Programming版 - Linq不是syntactic sugar
各位吵得好热闹,我来插一句嘴,呵呵
所谓 syntactic sugar,是指和 semantics 无关的,纯语法层面的转化
而 LINQ 可以看做是两部分,一部分是它提供的特殊语法,可以直接 desugar,变成标
准的 C# 语句,所以这部分是 syntactic sugar.
另一部分,是 LINQ 提供的库函数,这些为它的 semantics 提供了具体的实现,所以
不能称为 syntactic sugar
笼统地说 LINQ 是,或者不是 syntactic sugar,都是不准确的。包括 goodbug 引的
那片 paper,也只是说 LINQ 提供了 syntactic sugar,而不是说 LINQ 除了
syntactic sugar 就没有其它内容了。
就比如 Haskell 里面的 Monad,语法部分的 do syntax,是 syntactic sugar,但是
这个 do syntax 被 desugar 为 bind 和 return 两种函数操作,但是具体实现 bind
和 return 的语义则需要程序员(或者库函数)提供 implementati... 阅读全帖
n*w
发帖数: 3393
2
来自主题: Programming版 - 大家难道全是半路出家?
expression tree, fp, monad是linq后面的东西。你看到的from where
select是dot notation的糖水写法。你我可以有不同的观点,我们可以互相说明自己的
看法。不往别的方面扯就最好。hql不熟悉,看起来像是个dsl?
2)anonymous inner class. 是的,event driven ui是最常用的。Java版有列出别的
用处。
E*****m
发帖数: 25615
3
前面公孫還是誰都給你解釋過了, Python 可以搞 magic, 只是不鼓勵。
愛變魔術, 直接上 Lisp 或 Haskell, macro 和 monad transformer 才叫真魔術,
估計你永遠理解不了。
我沒提倡哪個語言, 再說一次,建議你別用你不爽的語言,尤其別用你一輩子
理解不了的。
a*****e
发帖数: 1700
4
来自主题: Programming版 - functional programming?
书这方面我也不是特别了解,都是从 conference paper 和项目代码看过来的。你可以
搜索 IFIP DSL Conference,有 proceeding 什么的。
如果你用 Haskell,基础的理论就是 Monad, Applicative Functor, Arrow 这些。更
基础的是解释器的实现,Oleg 的网站上有些 paper: http://okmij.org/ftp/tagless-final/
而且要看你想做什么,Haskell 这边 parser 类的 DSL 已经很成熟了,hackage 上很
多。电子设计和 control 方面的 DSL 也比较多,上面提到的 Lava, 还有 Atom 都是。
b***e
发帖数: 1419
5
来自主题: Programming版 - functional programming?
I question the accuracy of the Haskell developer salary report, well, yes,
depending on how do you classify Haskell developers. Most of the Haskell
developers are truly academic researchers. Those people who worked with me
before are mostly tenure professors at some universities. So far I didn't
find a single case in my list of 4 big cows who's "thousand years of post-
doc". This is not biology (sorry for my candor, biologists). They might
not be making as high as 200k per year as far as ba... 阅读全帖
a*****e
发帖数: 1700
6
来自主题: Programming版 - functional programming?
书这方面我也不是特别了解,都是从 conference paper 和项目代码看过来的。你可以
搜索 IFIP DSL Conference,有 proceeding 什么的。
如果你用 Haskell,基础的理论就是 Monad, Applicative Functor, Arrow 这些。更
基础的是解释器的实现,Oleg 的网站上有些 paper: http://okmij.org/ftp/tagless-final/
而且要看你想做什么,Haskell 这边 parser 类的 DSL 已经很成熟了,hackage 上很
多。电子设计和 control 方面的 DSL 也比较多,上面提到的 Lava, 还有 Atom 都是。
b***e
发帖数: 1419
7
来自主题: Programming版 - functional programming?
I question the accuracy of the Haskell developer salary report, well, yes,
depending on how do you classify Haskell developers. Most of the Haskell
developers are truly academic researchers. Those people who worked with me
before are mostly tenure professors at some universities. So far I didn't
find a single case in my list of 4 big cows who's "thousand years of post-
doc". This is not biology (sorry for my candor, biologists). They might
not be making as high as 200k per year as far as ba... 阅读全帖
b***e
发帖数: 1419
8
来自主题: Programming版 - 大家讨论过了node.js了吗?
木啥用,没法调。其实node.js里真正需要的是Haskell Monad comprehension那样的
sugar。
n*w
发帖数: 3393
9
来自主题: Programming版 - scala 真是一个无法无天的糟货
FP有用到数学的成果。比如category theory和monad。不清楚能否用fp研究数学。
H****S
发帖数: 1359
10
来自主题: Programming版 - scala 真是一个无法无天的糟货
Scala最大的benefit其实还是type safety。前面有人好像有人说太多option放在一起
不是每次都能记得做pattern match。其实懂一点Monads的人可以这么做
def a:Option[A]
def b(aa:A):Option[B]
def c(bb:B):Option[C]
val r:Option[C] = for {
aa <- a
bb <- b(aa)
cc <- c(bb)
} yield cc
这样写code一目了然,并且type safe。
c*********w
发帖数: 65
11
来自主题: Programming版 - scala 真是一个无法无天的糟货
Rod Johnson 在最近的Scala Days上提出了一些建设性的批评批评:
http://parleys.com/play/51c1ffe7e4b0d38b54f46231
我想他还是看到Scala的潜力才会去加入 Typesafe的.
作为一IT民工,多会点东西应该没坏处,如果有时间和兴趣。就连好虫的公司也似乎对
Scala有点兴趣: http://www.slideshare.net/lobster1234/scala-at-netflix-26048254
我能理解反感Scala的,几个月我才从 monad 里绕出来。Tool support 有待提高,等
等。
k**********g
发帖数: 989
12

That API only makes it easy to delegate to various existing and/or open-
source scripting engines (and DSLs), doesn't make it easy for one to design
and implement a new language.
To design one, you still need to understand language design, monad, etc.
Not every programmer is CS-major, and then not every CS-major likes the
compiler course.
c******o
发帖数: 1277
13
来自主题: Programming版 - scala 的感悟
用了几个月scala. 说一下我的感觉
scala是一个general purpose language, 它有足够的工具解决绝大部分项目和问题。
scala不是一个all purpose language,它明显在很多领域只是可以用而已。大部分领域
有更好的语言了。
我的感觉是,scala最适用于:
1. 多并发,大规模的后端,很好的支持并发。
2. 分布式系统,高可用性,高容错,分布式实现容易。
3. 复杂逻辑后端,有很多很好的抽象方法可以选用,用的好,可以很干净。
4. 各种专业的库,是一个很好的建库的语言,当然,要求也高。
这些主要是因为:
1. FP和OO的融合使得scala有很强大的标准库支持,也很容易使人迷惑, 看看那个
play的Json library, 很强大,也很囧。
2. FP和OO的融合使得scala有很多种抽象的方法,很强大,但是也很容易被滥用,太多
pattern可以用来干同一件事。
3. 静态类型和type inference使得scala很适合大型,复杂的系统,高效的系统,也能
够写出比较简洁和干净的代码,要是不注意,容易影响可读性。
4. 调用jav... 阅读全帖
c******o
发帖数: 1277
14
befor you realize it, this json api has monoid/monad/semigroup/functor in it

be
H****S
发帖数: 1359
15
good example of monads!这样的程序读起来难道不是很一目了然吗:)
H****S
发帖数: 1359
16
good example of monads!这样的程序读起来难道不是很一目了然吗:)
T******7
发帖数: 1419
17
最大的感觉就是,用这写code,不接地气。type系统真心好,还可一自己创建各种type
。monad能把这语言变成妖怪,可读性和可维护行非常低。语法方面,有些用法比
common lisp还要诡异。接受起来需要时间。写熟练需要磨练。
初步打算放一放 以后需要再看。
有没有研究过haskell的同学来说说,说什么都行
r*******n
发帖数: 3020
18
以前看过haskell实战的人说,如果你用haskell做实际项目,
至少60%的code是monad,也就是说的妖怪,俺也是不喜欢这个
东西, 不知道热爱haskell的怎么接受的。
纯haskell确实看着比较漂亮

type
T******7
发帖数: 1419
19
最大的感觉就是,用这写code,不接地气。type系统真心好,还可一自己创建各种type
。monad能把这语言变成妖怪,可读性和可维护行非常低。语法方面,有些用法比
common lisp还要诡异。接受起来需要时间。写熟练需要磨练。
初步打算放一放 以后需要再看。
有没有研究过haskell的同学来说说,说什么都行
r*******n
发帖数: 3020
20
以前看过haskell实战的人说,如果你用haskell做实际项目,
至少60%的code是monad,也就是说的妖怪,俺也是不喜欢这个
东西, 不知道热爱haskell的怎么接受的。
纯haskell确实看着比较漂亮

type
p*****2
发帖数: 21240
21
这个课程真无聊呀, 讲那么多monad干嘛。
n*w
发帖数: 3393
22
来自主题: Programming版 - Scala higher-kind type和jvm弱type system
turing complete的c++的template是很强大,实现个monad也很容易。就是调试出错信
息晦涩。

wouldn'
performance
kind
"
n*w
发帖数: 3393
23
来自主题: Programming版 - Scala higher-kind type和jvm弱type system
turing complete的c++的template是很强大,实现个monad也很容易。就是调试出错信
息晦涩。

wouldn'
performance
kind
"
c******o
发帖数: 1277
24
来自主题: Programming版 - functional programming why?
编了一段FP的code了,来说说我的理解。
FP其实不是编程方式的不同,是实现你想法到working code的方法不同。
大家说起FP,一般都先想到function first.没错,但是FP还有很多很重要但是不为人
了解的侧重点。
1. immutability (不变性),这个很多人说不实用,没错,在某些意义上是不适用。
但是对于非IO瓶颈的项目,你总能把你最看重的那部分分离出来做纯FP,immutable.其
他的继续imperative.其实实际编程时考究的主要是建模/抽象/算法,把它变成
parallellable,其他都容易,FP就是让它容易的工具。让你能多想建模/抽象/算法。
2. lazy evaluation,这个其实也是各种FP强调的一点。也很好,和 immutability 在
一起,能大大简化模型/算法,
2.1 不会有多余的不需要的计算,只有用到的时候才算,而且immutability可以缓存。
2.2 因为只有用到的时候才算,你可以构造无限大小的数据结构。
2.3 很新奇的就是,你还可以用lazy evaluation来构造control ... 阅读全帖
c******o
发帖数: 1277
25
一个常见的教学例子是 discrete circuit simulation,这个完全可以,就是用state
monad,把state lift放到一个type里.
c******o
发帖数: 1277
26
这个我不熟,不知道。大概错了。
我只是从https://gobyexample.com/ 上看的, 看起来是差不多 类比 future monad
s******y
发帖数: 416
27
来自主题: Programming版 - 大牛给讲讲monad吧?
“是个大牛”中的“大牛”理解为形容词?有点汗
p*****2
发帖数: 21240
28
来自主题: Programming版 - 大牛给讲讲monad吧?

你这个不是OO的inheritance吗?
p*****2
发帖数: 21240
29
来自主题: Programming版 - 看了一下monad,让我想到了Java的AOP
有些神似
z****e
发帖数: 54598
30
来自主题: Programming版 - 看了一下monad,让我想到了Java的AOP
两个不同的东西,aop和fp本身就不是一个东西
我第一个反应是javafx里面的bind
fp的东西每一次都让我想起ui
包括java8的lambda,一举例就是eventhandler
z****e
发帖数: 54598
31
来自主题: Programming版 - 看了一下monad,让我想到了Java的AOP
看了一下那篇文章,idea就是想把两个东西给联系起来
但是我的感觉是fp和aop恰好是两个不同layer方式的东西
就好比app server + db以及jvm + os的区别一样
一个是横的,一个是竖的,两个都是layer,但是并不代表两个东西就是一致的
实际上差异很明显,我一般主张把db这个叫做tier,tier和layer
看上去共同点不少,但是实际上连接方式截然不同
p*****2
发帖数: 21240
32
来自主题: Programming版 - 看了一下monad,让我想到了Java的AOP
大牛顿悟了?
p*****2
发帖数: 21240
33
来自主题: Programming版 - 想学FP最好不要从Scala开始
这次学习monad又一次证明了。应该学个纯正一些的FP语言,然后再回头去用Scala。
Scala不管是OO还是FP,确实不适合初学者。
p*****2
发帖数: 21240
34
来自主题: Programming版 - 想学FP最好不要从Scala开始

大牛给讲讲Scala的monad吧。
c******o
发帖数: 1277
35
来自主题: Programming版 - 想学FP最好不要从Scala开始
我这个周末又研究了一遍, scala设计的时候就没有做abstract monad trait, 也没
有打算做这个。
要是学纯fp,最好还是Haskell. Lisp (Clojure)也是个混合体。
c******o
发帖数: 1277
36
来自主题: Programming版 - 也谈OOP跟FP之争
我觉得你说的不对,
FP/OO都是世界的一种描述,没啥优劣之分。
事实上,FP的monad在很多场合(state/IO) 也是很ugly, 从imperative的角度简直是自
作自受。
每个编程方式都是有它最适用的一面的。

Rod
l******t
发帖数: 55733
37
来自主题: Programming版 - 也谈OOP跟FP之争

OO可以对应中医,FP可以是西医。
为啥我觉得monad很elegant。。impure code在FP看来是非常的烫手非常的毒。
g*****g
发帖数: 34805
38
来自主题: Programming版 - 也谈OOP跟FP之争
FP is turning complete. I give you that. But I double Physicists understand
state monad. And if they don't, I doubt they are capable to describe the
world in FP way.

can
q*c
发帖数: 9453
39
来自主题: Programming版 - 也谈OOP跟FP之争
why physicist? Normal people counts, because all programmers (or 99.99% of
them) are normal people, or at least raised up as normal people.
normal people for sure understand what an Object is, and what it looks like,
and how it behaves much much easier than some state monad.

understand
g*****g
发帖数: 34805
40
来自主题: Programming版 - 也谈OOP跟FP之争
There is a big big difference between turning complete and actually modeling
it that way. Maybe physicists do know category theory well, but they don't
describe the world using monad. They use objects, stateful attributes and
their interactions instead. It's not hard to figure that out from textbook.

can
everything.
it
key
c******o
发帖数: 1277
41
来自主题: Programming版 - 也谈OOP跟FP之争
you did not see how state monad in action, it looks just LIKE what
imperative programming looks like, except, it is all immutable inside. I do
not think it is a better way, as you can do it just use stateful code to do
it simpler.
But it is good if it is parallel env, much easier to reason the code as it
is all immutable.
for {
_ <- set(List("foo", "bar"))
parsed <- parseInt("1")
state <- get[List[String]]
_ = println("sneaky peek at the state: " + state)
doubled = dou... 阅读全帖
g*****g
发帖数: 34805
42
来自主题: Programming版 - 也谈OOP跟FP之争
Let me say this again. Change (mutability) is a concept universally used in
Physics. Achieving the equivalent using monad doesn't make it the modeling
language in textbook. This is not a backlash to FP, merely a fact.

do
do
z****e
发帖数: 54598
43
来自主题: Programming版 - fp就是Declarative Programming
某个syllabus
AIMS
Declarative programming languages provide elegant and powerful programming
paradigms which every programmer should know. This subject presents
declarative programming languages and techniques.
INDICATIVE CONTENT
The dangers of destructive update
Functional programming
Recursion
Strong type systems
Parametric polymorphism
Algebraic types
Type classes
Defensive programming practice
Higher order programming
Currying and partial application
Lazy evaluation
Monads
Logic programming
Un... 阅读全帖
z****e
发帖数: 54598
44
来自主题: Programming版 - fp就是Declarative Programming
这个不能丢掉,否则用monad去做io,会把人累死
oo为主
p*****2
发帖数: 21240
45
来自主题: Programming版 - fp就是Declarative Programming

需要monad的FP也就Haskell吧?
z****e
发帖数: 54598
46
来自主题: Programming版 - fp就是Declarative Programming
那不用monad的还算是fp么?
p*****2
发帖数: 21240
47
来自主题: Programming版 - fp就是Declarative Programming

你要那么说python,coffeescript也都用了monad了。
p*****2
发帖数: 21240
48
来自主题: Programming版 - fp就是Declarative Programming

clojure是favor macro的。纯FP才用monad。这个世界很少有纯的。就跟Java不是纯OO
的一样。
p*****2
发帖数: 21240
49
来自主题: Programming版 - fp就是Declarative Programming

大牛怎么学的monad呀?专门学了Haskell还是就在Scala上学的?
c******o
发帖数: 1277
50
来自主题: Programming版 - fp就是Declarative Programming
http://www.manning.com/bjarnason/
我买了一本,作者是scalaz的主要contributor (scalaz的梦想就是bring Haskell
like ADT 到scala)
我在上面学的各种ADT/monad,还有streaming IO.
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)