PLT 板


LINE

看板 PLT  RSS
※ 引述《noctem (noctem)》之铭言: : ※ 引述《Schelfaniel (Schelfaniel)》之铭言: : : clojure 首先它走 JVM,所以很多函式库的部份不成问题, : : 除了本身 Java 的限制,像是 Java 太底层还是要呼叫 C 的等等 : : 但是反过来说 clojure 语法现代化很多,和 Java 的结合性也很高, : : clojure 提供了很多专为 Java 设计的,如 proxy 指令, : : 就是专为 Java 事件回呼函式用的, : 看了 Ruby 板的范例,语法上还是蛮有 LISP 家族的风格。 : 中括号和大括号分别是什麽意思呢?冒号有特别意义吗? 中括号是 vector,但是很多情形是用在表示参数,如 let fn 等的参数 user=> (type [1 2 3]) clojure.lang.LazilyPersistentVector user=> (let [x 1] x) 1 大括号是 hashtable user=> (type {'a 'b}) clojure.lang.PersistentArrayMap 冒号是 keyword user=> (type :a) clojure.lang.Keyword 基本上它 hashtable 都习惯用冒号,像是 {:name "godfat" :type 'super-programmer} 就是 key 值是 :name 的内容是 "godfat" :type 'super-programmer : 此外 clojure 和 LISP 有哪些不同呢? 其实,有一些我目前也只试用一些浅显的功能,详细的比较官网上有写 http://clojure.org/lisps : 1. purely functional? 我觉得还是没有 Haskell 纯啦,但是比 Common Lisp 纯, 至少, Common Lisp 可以写得 OO 的,但 clojure 会很自然得写得 functional 我是觉得比 Haskell 好入门 :QQ : 2. 是 static 还是 dynamic typing? dynamic typing,不过,由於 Java 是 static typing 在呼叫 Java 函数时,会变成使用 Java 的 Reflection 机制(会比较慢), 因此 clojure 提供的 Type Hint 也就是在参数中加入提示 可以比较一下 foo 和 foo2,都是呼叫 Java 的 .length, 但是 foo2 时提示了 x 的型态是 String (注:此时如果型态不是 String 就会出错) 速度上就马上从 dynamic language 的速度提升到像是 static language 的速度。 user=> (defn foo [x] (.length x)) #'user/foo user=> (time (dotimes [_ 1000000] (foo "a"))) "Elapsed time: 20217.463888 msecs" user=> (defn foo2 [#^String x] (.length x)) #'user/foo2 user=> (time (dotimes [_ 1000000] (foo2 "a"))) "Elapsed time: 28.428942 msecs" --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.29.28.137
1F:推 noctem:thanks! 07/07 10:23
2F:推 godfat:还有 type hint 这种东西喔 @@ 效能也未免差太多了... 07/07 10:35
3F:→ noctem:居然差到三位数耶.. 是因为 runtime 的型别检查很花时间吗 07/07 13:54
4F:→ Schelfaniel:就是这 type hint 让 clojure 效能可以追上 Scala 的 07/07 15:05
5F:推 godfat:试了一下,果真是 "hint", 写错也能跑,但是超超超超慢.... 07/07 15:10
6F:推 noctem:欸欸欸,那为什麽 type 错了还可以跑呢?? @_@ 07/07 17:02
7F:→ sbrhsieh:这样的数据有点.....我想已不纯粹是慢在 reflection 07/07 20:16
8F:推 sbrhsieh:有没有人在玩 KAWA(Scheme on JVM)? 07/07 20:35
9F:→ godfat:更正,type hint 给错的速度跟没给是一样的,但真的能跑... 07/07 20:40







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP