h*i 发帖数: 3446 | 1 不懂scala,也不感兴趣。
来段不懂的Clojure来,倒可以分析分析。
A] |
|
h*i 发帖数: 3446 | 2 人和人的悟性不同,有的人刷了120多道题也没有翻过坎,有的人不刷题用FP也得心应
手,看个人吧。喜欢分析总结规律的人可能要上手快点。
Clojure核心函数是不少,但不同的函数反映了不同的算法思维模式,其实也就几十个
而已,毕竟人的思维模式是有限的。刷题是为了熟悉不同函数的适用场合,最后做到灵
活应用:看到一个问题的描述,立马就知道这是什么模式,该用什么函数。比如看到一
个迭代的算法,那么就立即知道用iterate。很多人用FP实现别人的算法觉得吃力,其
实往往是没有真正理解那个算法。大部分算法都是用IP语言写出来的,照着翻译成FP必
然很困难。但理解了算法本意,用FP写出来,往往和psuedo-code一样简练。我最近实
现了好几个ML算法,都是这种状况。
我觉得IP和FP的区别有点像字母文字与中文的区别。字母文字的元素很少,就几十个字
母,觉得学起来容易,中文元素很多,几千个字,学起来觉得难。但学会之后,中文感
觉是用有限的概念来无限扩展,没有读不懂的文章,比如常人会中文的读中文医书可以
读懂,术语都能猜出意思来,而英文不行,学富五车还是读不懂医学书,必须上医学院。 |
|
h*i 发帖数: 3446 | 3 作为认知心理学家,我就给你科普一下。人脑不是计算机,不是用来作底层计算的。人
的工作计忆容量平均只有七个单元,用冯纽曼机的概念,就是一个内存只有一个拜特的
机器。计算速度?那就更惨了,是几百毫秒作一个基本操作。传统程序员的训练,就是
用人脑这个性能很差的计算机,来模拟高性能的人造计算机。程序员自己写的代码,在
自己脑子里运行都是搞不定的,所以会有虫子,要用debugger来一步步跟。人脑厉害的
,一是长时计忆,容量几乎无限,二是抽象能力,把复杂的模式抽象成一个个概念,可
以用符号表示。
编程语言应该要发挥人脑的优势,把复杂的算法模式变成可记忆的符号,这就是
clojure 这种语言也许无意中正在作的事,它搞了好几十个核心函数,让程序员记住,
每个函数是一个复杂的算法模式。这儿"学编程"的含义都变了。刷LC,是学习用原始
的三个工具,赋值,条件,循环,来实现复杂算法模式的技巧,有点中学学奥数的意思
。刷4clojure,是学习一堆高度抽象的函数,毎个函数是干嘛的,什么时候用,有点学
大学数学的意思,技巧不是主要的,知道都有些啥,用来干嘛更重要。有人悟性不行,
用刷LC的方法来刷4cloj... 阅读全帖 |
|
l*********s 发帖数: 5409 | 4 clojure比scala简单多了。这个可以有。 |
|
h*i 发帖数: 3446 | 5 看什么样的FP吧?
我说的这个把复杂模式变成函数让人记的战略,具体实现起来,不一定容易把握。
scala可能就没上道;haskell可能抽象过度了,抽象到范畴论的高度正常人吃不消;CL
可能函数太多了,宏用得太多,人人自搞一套;clojure可能误打误撞正好,每个核心
函数意思都好懂,数目不多不少,正常人花点功夫能都能记住,记住了差不多日常够用
了,自己搞一套的少。
★ 发自iPhone App: ChineseWeb 8.6 |
|
d******e 发帖数: 2265 | 6 今天网上瞎逛,发现colujure真的很牛啊。
clojure的的map做的比haskell还要快。这个比python 强多了。 |
|
h*i 发帖数: 3446 | 7 你鼓吹Java可以,我鼓吹Clojure就不可以?这什么逻辑?展开说说看?
有道理说道理,不要上来就什么”左派“啦,”不现实“啦,说不过就哭叫”太过了“
,这算啥?
猥琐成这样是不行的,难怪一个个在公司里被烙印骑在头上拉屎。 |
|
h*i 发帖数: 3446 | 8 不明白你说的。
我一直就只是在鼓吹Clojure,还没鼓吹过其他语言吧?我来这儿没几年,你认错人了
吧? |
|
e*******o 发帖数: 4654 | 9 我承认我有拉偏架嫌疑
至于 good bug 我咋不掺和 主要是我不懂Java 他们讨论我插不上嘴
clojure lisp 我还知道一些 |
|
g*****g 发帖数: 34805 | 10 这个板上以转行的为主,真被你忽悠去学 clojure就是浪费时间。就这么简单的道理你
都不懂,还吹个屁呀。尼玛成天被打脸就上什么被烙印拉屎这种意淫,尼玛跟个女人似
的。 |
|
h*i 发帖数: 3446 | 11 活宝来了,果然是一路走来一路骂骂咧咧,生怕自己被忘了。放心,你是本版的活宝,
怎么会忘了你呢,你不参与,我们都会主动提起你的。
搞了半天,你真怕小朋友们被我“忽悠”去学Clojure啊?这是什么原理?是不是给小
朋友们也宣传宣传,让他们也知道本版活宝的一片好意,以后多来给你捧捧场啊。呵呵。 |
|
l**********n 发帖数: 8443 | 12 必需学go了,clojure的agent和stm scala都有啊。 |
|
|
|
|
t**r 发帖数: 3428 | 16 clojure 配合 java 是一个不错的出路。
scala 太乱 太杂容易让人失去耐心。 |
|
h*i 发帖数: 3446 | 17 虽然Clojure社区文化是反对大而全的框架的,但初学者往往感觉一抹黑,有时候也需
要一个框架来指导学习,那么可以试试这个:
http://www.luminusweb.net/
这个微框架选用的库比较靠谱,很多与我自己摸索出来的选择是一样的,而这个项目都
给集成好了,用起来很方便。 |
|
|
f******2 发帖数: 2455 | 19 搞data science的用clojure比较爽吧?基本就是写公式。 |
|
d*******r 发帖数: 3299 | 20 赞干货, 顶一个.
我虽然还不是 Clojure developer, 也希望版上各种 developer 都聊得起来. |
|
s***o 发帖数: 2191 | 21 赞一个。我记着mimi大侠是clojure爱好者,二爷好像以前也当过一阵:) |
|
T******7 发帖数: 1419 | 22 scala. go. clojure.学一個 学哪个?
假设有不錯的java cpp python基础。 |
|
g*******o 发帖数: 156 | 23 同意楼上的。看你干什么。
web service和low-level tool学go
data mining, processing 学scala
clojure也不错,只是不知道将来storm还能不能pk掉spark-stream |
|
g*******o 发帖数: 156 | 24 同意楼上的。看你干什么。
web service和low-level tool学go
data mining, processing 学scala
clojure也不错,只是不知道将来storm还能不能pk掉spark-stream |
|
T******7 发帖数: 1419 | 25 scala. go. clojure.学一個 学哪个?
假设有不錯的java cpp python基础。 |
|
g*******o 发帖数: 156 | 26 同意楼上的。看你干什么。
web service和low-level tool学go
data mining, processing 学scala
clojure也不错,只是不知道将来storm还能不能pk掉spark-stream |
|
g*******o 发帖数: 156 | 27 同意楼上的。看你干什么。
web service和low-level tool学go
data mining, processing 学scala
clojure也不错,只是不知道将来storm还能不能pk掉spark-stream |
|
l*********s 发帖数: 5409 | 28 想搞java的话clojure是很自然的选择。 |
|
n*****3 发帖数: 1584 | 29 clojure 只是 Java library,
wrap 新的library 还是慢,跟不上最新的 |
|
h*i 发帖数: 3446 | 30 和Clojure的实现方法类似,就是直接编译成虚拟机的byte code。 不过pixie的虚拟机
是自己实现的,用RPython写的,GC,JIT啥的都从这儿来。Async IO用的node的libuv
,C interop利用boost。挺clever的。
速度不知道,现在micro benchmark和LLVM byte code和Java差不多快,对一个GC,
dynamic typed, immutable data的语言来说,这是很可观了。以后优化了肯定可以更
快,C的2x以内不是不可能的吧。 |
|
|
|
g****t 发帖数: 31659 | 33 hci还在吗?
我刚看了下
awesome clojure,印象深刻啊 |
|
h*i 发帖数: 3446 | 34 Nobody.
Like Trump's movement, Clojure's just a small grassroots movement. Most of
its users are working programmers who are fed up with the establishment :-) |
|
g****t 发帖数: 31659 | 35 Can you compare clojure and clojurescript? |
|
g****t 发帖数: 31659 | 36 Thanks for the information!
I plan to develop an Emacs-Lisp version control/backup file tool for my own
usage.
Then I will try the clojure.
suffix
useful |
|
n*****3 发帖数: 1584 | 37 clojure 是不错, 但 egosysytem 还是太小了 |
|
|
g****t 发帖数: 31659 | 39 python走llvm,难点之一是C扩展的各种库搞不定。
llvm上的clojure是不是也会有这个问题? |
|
x***4 发帖数: 1815 | 40 我也很想试试Clojure。不过我1)很害怕很多括号;2)很害怕没有static typing。有
什么解法吗? |
|
h*i 发帖数: 3446 | 41 1) Clojure的括号比Java要少,无非是括的地方不同而已。
2)为啥害怕没有static typing?你是用haskell这种的的么?否则有啥区别? |
|
O***b 发帖数: 104 | 42 写 web 绝大多数都是字符串转来转去,没有 typing 不是特别大的隐患。Clojure 的
accidental complexity 我认为是要小很多的。 |
|
h*i 发帖数: 3446 | 43 对。Clojure目前主要的用途就是用来写Web,前后端都可以用,代码清爽,简单明了,
几乎没有什么缺陷。
的 |
|
g****t 发帖数: 31659 | 44 windows COM可能是C++最成功的组件技术了。
例如你写个matlab那样的程序。另外一个程序要调用其画图功能。
你又不要开放源代码。那么clojure或者FP有现成的机制吗?
我初步检查,emacs是没有的。外部进程无法调emacs 改动其
buffer内容。 |
|
h*i 发帖数: 3446 | 45 这就很牛了?这不还是dispath on type么?Lisp的multimethods能dispatch on
anything。
实在要dispatch on type, Clojure的Protocol能给任何类(包括别人写的类,JVM自
己的类,whatever)强加上任何interface,所以你想要干嘛就干嘛。 |
|
|
p****o 发帖数: 1340 | 47 看了板上大牛推荐的clojure,我打算来学学,随便也看了写functional programming
的东东,还是蛮有启发的。呵呵,这个纯属是自己的业余爱好。
现在我的问题是,不知道对各个问题用什么库比较好。几个方面,比如说:
1. 画图
2. 处理大一点的数据的数据结构的库
3. 统计分析
4. machine learning
最近我花了些时间,发现完全自己看,太容易走弯路。大牛上来说说吧。 |
|
n******7 发帖数: 12463 | 48 看看这里
https://www.clojure-toolbox.com/
感觉你就是找个可以代替R的库,基本上这个问题的答案就是Incanter
不过这是个半死不活的个人项目,劝你不要折腾了
选语言还是看库支持,根据库选语言
非要用某个语言,又要出东西的话,得有自己实现一堆东西的觉悟
其实很多公司就是这么做的 |
|
n******7 发帖数: 12463 | 49 我yy过clojure好久
不过现在上C#了,估计我第一个正经用的FP语言是F# |
|
p****o 发帖数: 1340 | 50 哈哈,我也是同时在看F#,感觉非常不错。但是F#的package管理很奇葩,这一点
clojure就很好,简洁又好用。 |
|