Clojure Clojure vector 疑问

simlegate · September 04, 2013 · Last by mrhooray replied at April 08, 2014 · 8108 hits
user=> (time (vector 1 3 4))
"Elapsed time: 0.024 msecs"
[1 3 4]
user=> (time [1 3 4])
"Elapsed time: 0.016 msecs"
[1 3 4]

感觉第一个更符合 S-表达式
第二个是语法糖 ,效率应该更加慢啊

我猜:第二个不是语法糖 (现在很多"语法糖"都可以把"糖"去掉了... 算不算糖要看是否只在 parse 时处理,有运行时语义的话就不算糖了), 或者是语法糖但翻译成比调用 vector 函数更高效的方式 (其实 vector 可以动态绑定的,而 [] 必然调用到内建的那个), 又或者在进 time 之前就完成 vector 的构建了...

@luikore 语法糖但翻译成比调用 vector 函数更高效的方式这个听着有点可信。

第二个没方法调用啊

程序语言里没有“语法糖”这个概念

5 Floor has deleted
You need to Sign in before reply, if you don't have an account, please Sign up first.