avatar
a*e
1
刚才查妈妈的b2签证状况,10min前显示的是ready,现在又变成application receipt
pending了
发生什么事了,是bug还是资料出问题了?
avatar
b*l
2
赞版上喜结粽子良缘啊。
君子意如何?江湖春水多。19 个速冻粽子,大家自己分头微波吧。
avatar
g*t
3
多核也好,并发也好。FP语言的很多特点无疑在很多场景下是有用的。但是主要学FP完
全没必要。
FP自身就有两类,一类Lisp出来,一类ML出来。
学FP,那得先内部较劲。分出来Lisp和ML(Haskell,F#)
谁好谁不好。这个问题没个五年,就无法有自己的认识。
那你学哪个FP?
这可不像python vs C plus plus
类似的问题还有非常多。真做项目,你都给一个个解决吗?
再说了,现在java, C sharp,...都有加FP一些特点进来.
真的不够你用吗?
要主要走FP可以
但你得有足够的力量克服很多不会找到参考答案的问题
就是说你要有足够的力量
不然的话这投入是不划算的
avatar
s*2
4
bless!
avatar
w*g
5
除非对FP及其实现(如何从lambda演算编译成x86指令, lazy evaluation何时
被求值)有比较深入的理解,一般人其实很难对FP代码的性能有比较准确的预期。
运算在什么时候发生在哪行代码,花了多少内存,都要绕几个弯才能想明白。
所以FP语言高性能,我觉得是个神话。
我这里的FP特指haskell。但我觉得不失一般性。
第一,haskell是一种纯FP语言。别的混合型语言,你说不好是哪个成分在起作用。
第二,haskell是编译型的。解释型语言讨论性能没有现实意义。
实际写多线程多核,C/C++或者java/C#,完全可以写const function。
我不认为这是FP特性。如果是const function,里面哪怕都是for loop实现的,
也还是可以很容易并行化,完全不需要写成lambda演算。所需要的,只是
理解const关键字怎么用而已。

【在 g****t 的大作中提到】
: 多核也好,并发也好。FP语言的很多特点无疑在很多场景下是有用的。但是主要学FP完
: 全没必要。
: FP自身就有两类,一类Lisp出来,一类ML出来。
: 学FP,那得先内部较劲。分出来Lisp和ML(Haskell,F#)
: 谁好谁不好。这个问题没个五年,就无法有自己的认识。
: 那你学哪个FP?
: 这可不像python vs C plus plus
: 类似的问题还有非常多。真做项目,你都给一个个解决吗?
: 再说了,现在java, C sharp,...都有加FP一些特点进来.
: 真的不够你用吗?

avatar
d*c
6
FP主要宣传的不是高性能把,提到性能也是因为并行带来的。
FP原则能带来的是放心,我说的不是FP语言特性,什么lamda之类,也不一定要用FP语
言实现,而是那几个FP编程原则。
每个单元的影响是可控的,在范围内,单元是可以随意组合的。有全局变量和side
effect的时候,你必须考虑这些因素,但是编程的时候这些并不是很明显
一段程序是否引用了全局变量,一眼看过去并不明显
是否有side effect,也不明显
于是你只能自己记住,或者写在comments里。
全局变量的影响可能是跨越好几个函数,分散在各个地方的,更不好记住
人的注意力只能同时考虑几件事,这样思考起来太累,过段时间以后重新捡起来很困难
,别人读也很困难。
这是程序水平的提高,当然对程序员要求高。
还有强调强类型的,那是公司老板知道招的都是一大堆新手弱人容易出错,所以有越多
检查越多约束越好,减少愚蠢错误。

【在 w***g 的大作中提到】
: 除非对FP及其实现(如何从lambda演算编译成x86指令, lazy evaluation何时
: 被求值)有比较深入的理解,一般人其实很难对FP代码的性能有比较准确的预期。
: 运算在什么时候发生在哪行代码,花了多少内存,都要绕几个弯才能想明白。
: 所以FP语言高性能,我觉得是个神话。
: 我这里的FP特指haskell。但我觉得不失一般性。
: 第一,haskell是一种纯FP语言。别的混合型语言,你说不好是哪个成分在起作用。
: 第二,haskell是编译型的。解释型语言讨论性能没有现实意义。
: 实际写多线程多核,C/C++或者java/C#,完全可以写const function。
: 我不认为这是FP特性。如果是const function,里面哪怕都是for loop实现的,
: 也还是可以很容易并行化,完全不需要写成lambda演算。所需要的,只是

avatar
h*c
7
你说得问题我觉得更应该从建模,normal form,逻辑的优化来解决
目前我没有看到FP对于简化程序结构的任何讨论
完全是一套干儿子打法,我这东西好,你必须得有,不用躺地上打滚
比如象电路设计门电路得简化优化

【在 d******c 的大作中提到】
: FP主要宣传的不是高性能把,提到性能也是因为并行带来的。
: FP原则能带来的是放心,我说的不是FP语言特性,什么lamda之类,也不一定要用FP语
: 言实现,而是那几个FP编程原则。
: 每个单元的影响是可控的,在范围内,单元是可以随意组合的。有全局变量和side
: effect的时候,你必须考虑这些因素,但是编程的时候这些并不是很明显
: 一段程序是否引用了全局变量,一眼看过去并不明显
: 是否有side effect,也不明显
: 于是你只能自己记住,或者写在comments里。
: 全局变量的影响可能是跨越好几个函数,分散在各个地方的,更不好记住
: 人的注意力只能同时考虑几件事,这样思考起来太累,过段时间以后重新捡起来很困难

avatar
g*t
8
你说的这些东西,C等语言写起来照样无难度。以前有家公司出过
One time assignment C。为此学fp系统还不如学OO
所以你说的和scala这种不是一回事。FP函数可以改自己的上下文,这个和goto类似有
时候可以非常高效,有不少奇技淫巧。lisp半页纸就可以实现一个eval,你想想能搞出
多少花样吧


: FP主要宣传的不是高性能把,提到性能也是因为并行带来的。

: FP原则能带来的是放心,我说的不是FP语言特性,什么lamda之类,也不
一定要
用FP语

: 言实现,而是那几个FP编程原则。

: 每个单元的影响是可控的,在范围内,单元是可以随意组合的。有全局变
量和
side

: effect的时候,你必须考虑这些因素,但是编程的时候这些并不是很明显

: 一段程序是否引用了全局变量,一眼看过去并不明显

: 是否有side effect,也不明显

: 于是你只能自己记住,或者写在comments里。

: 全局变量的影响可能是跨越好几个函数,分散在各个地方的,更不好记住

: 人的注意力只能同时考虑几件事,这样思考起来太累,过段时间以后重新
捡起来
很困难



【在 d******c 的大作中提到】
: FP主要宣传的不是高性能把,提到性能也是因为并行带来的。
: FP原则能带来的是放心,我说的不是FP语言特性,什么lamda之类,也不一定要用FP语
: 言实现,而是那几个FP编程原则。
: 每个单元的影响是可控的,在范围内,单元是可以随意组合的。有全局变量和side
: effect的时候,你必须考虑这些因素,但是编程的时候这些并不是很明显
: 一段程序是否引用了全局变量,一眼看过去并不明显
: 是否有side effect,也不明显
: 于是你只能自己记住,或者写在comments里。
: 全局变量的影响可能是跨越好几个函数,分散在各个地方的,更不好记住
: 人的注意力只能同时考虑几件事,这样思考起来太累,过段时间以后重新捡起来很困难

avatar
d*c
9
用什么语言都能写到一定程度,无非是语言支持的方便程度不同。
所以我说的是functional programming, 不是functional programming language,语
言不是重点,重要的是原则。

【在 g****t 的大作中提到】
: 你说的这些东西,C等语言写起来照样无难度。以前有家公司出过
: One time assignment C。为此学fp系统还不如学OO
: 所以你说的和scala这种不是一回事。FP函数可以改自己的上下文,这个和goto类似有
: 时候可以非常高效,有不少奇技淫巧。lisp半页纸就可以实现一个eval,你想想能搞出
: 多少花样吧
:
:
: FP主要宣传的不是高性能把,提到性能也是因为并行带来的。
:
: FP原则能带来的是放心,我说的不是FP语言特性,什么lamda之类,也不
: 一定要
: 用FP语

avatar
c*r
10
确实是这样,比如简单的 quicksort 吧, 用C写, 50行, OCaml, 5 行。
看看, 我用5分钟, 基本确定 C code 是 O(log(n)). 50 分钟我也不能确定 OCaml
到底是多快。
所以两三个人的队伍,很可能 FP 更厉害, 高效。 20个,不好说。 200个,哪找
200个好手?

【在 w***g 的大作中提到】
: 除非对FP及其实现(如何从lambda演算编译成x86指令, lazy evaluation何时
: 被求值)有比较深入的理解,一般人其实很难对FP代码的性能有比较准确的预期。
: 运算在什么时候发生在哪行代码,花了多少内存,都要绕几个弯才能想明白。
: 所以FP语言高性能,我觉得是个神话。
: 我这里的FP特指haskell。但我觉得不失一般性。
: 第一,haskell是一种纯FP语言。别的混合型语言,你说不好是哪个成分在起作用。
: 第二,haskell是编译型的。解释型语言讨论性能没有现实意义。
: 实际写多线程多核,C/C++或者java/C#,完全可以写const function。
: 我不认为这是FP特性。如果是const function,里面哪怕都是for loop实现的,
: 也还是可以很容易并行化,完全不需要写成lambda演算。所需要的,只是

avatar
g*t
11
你最终是要出货的。离开具体语言谈编程原则没有什么意义, in long term.
教学可以举例子用。

【在 d******c 的大作中提到】
: 用什么语言都能写到一定程度,无非是语言支持的方便程度不同。
: 所以我说的是functional programming, 不是functional programming language,语
: 言不是重点,重要的是原则。

avatar
d*c
12
说语言不是重点的时候是在纠正把语言纠缠在一起的讨论
具体做的时候当然要落到语言上
离开语境去否定几句话也没什么意义。

【在 g****t 的大作中提到】
: 你最终是要出货的。离开具体语言谈编程原则没有什么意义, in long term.
: 教学可以举例子用。

avatar
g*t
13
FP 函数调用有和goto一样的flexibility.
如果你只是说调用。而不是把类型论范畴论等算作FP。

【在 d******c 的大作中提到】
: 说语言不是重点的时候是在纠正把语言纠缠在一起的讨论
: 具体做的时候当然要落到语言上
: 离开语境去否定几句话也没什么意义。

avatar
i*h
14
我对FP完全门外
是不是FP最大的问题就是和现有的诺依曼硬件框架不匹配导致不接地气?
有可能真正的FP硬件吗?
avatar
c*o
15
为什么不匹配?明明数学上上是等价的。。
oo/procedure也和诺依曼硬件框架不一样啊。。不然哪儿有那么多的编译器优化/CPU
处理指令优化
avatar
g*t
16
没有goto的语言都不能和硬件框架一致...


: 为什么不匹配?明明数学上上是等价的。。

: oo/procedure也和诺依曼硬件框架不一样啊。。不然哪儿有那么多的编译器优化
/CPU

: 处理指令优化



【在 c******o 的大作中提到】
: 为什么不匹配?明明数学上上是等价的。。
: oo/procedure也和诺依曼硬件框架不一样啊。。不然哪儿有那么多的编译器优化/CPU
: 处理指令优化

avatar
d*e
17
语言是重点啊。java写什么都是鸟样。
最后只好用字串, 省掉类型。

【在 d******c 的大作中提到】
: 用什么语言都能写到一定程度,无非是语言支持的方便程度不同。
: 所以我说的是functional programming, 不是functional programming language,语
: 言不是重点,重要的是原则。

avatar
d*e
18
语言是重点啊。java写什么都是鸟样。
最后只好用字串, 省掉类型。

【在 d******c 的大作中提到】
: 用什么语言都能写到一定程度,无非是语言支持的方便程度不同。
: 所以我说的是functional programming, 不是functional programming language,语
: 言不是重点,重要的是原则。

avatar
c*o
19
这个 goto是什么?
就是一个无条件改变程序流程,到某处。
这个fp完全能实现。 有什么不能?

【在 g****t 的大作中提到】
: 没有goto的语言都不能和硬件框架一致...
:
:
: 为什么不匹配?明明数学上上是等价的。。
:
: oo/procedure也和诺依曼硬件框架不一样啊。。不然哪儿有那么多的编译器优化
: /CPU
:
: 处理指令优化
:

avatar
c*1
20
不管什么高级语言
最后都是编译为cpu的机器代码...

【在 i***h 的大作中提到】
: 我对FP完全门外
: 是不是FP最大的问题就是和现有的诺依曼硬件框架不匹配导致不接地气?
: 有可能真正的FP硬件吗?

avatar
g*t
21
能用统一的办法在不同场景来实现吗?
实现能保证几十年语法不变吗?能有稳定可预测的性能吗


: 这个 goto是什么?

: 就是一个无条件改变程序流程,到某处。

: 这个fp完全能实现。 有什么不能?



【在 c******o 的大作中提到】
: 这个 goto是什么?
: 就是一个无条件改变程序流程,到某处。
: 这个fp完全能实现。 有什么不能?

avatar
w*w
22
quick sort time complexity 是 O(log(n))? 竟然跟binary search 一样了? 难道
我以前的知识都学错了? 不是 nlog(n) 吗?

OCaml

【在 c******r 的大作中提到】
: 确实是这样,比如简单的 quicksort 吧, 用C写, 50行, OCaml, 5 行。
: 看看, 我用5分钟, 基本确定 C code 是 O(log(n)). 50 分钟我也不能确定 OCaml
: 到底是多快。
: 所以两三个人的队伍,很可能 FP 更厉害, 高效。 20个,不好说。 200个,哪找
: 200个好手?

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。