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 的构建了...
vector
[]
@luikore 语法糖但翻译成比调用 vector 函数更高效的方式这个听着有点可信。
语法糖但翻译成比调用 vector 函数更高效的方式
第二个没方法调用啊
程序语言里没有“语法糖”这个概念