这个只是generic函数的功能罢了。CLOS的卖点不该是MOP么
我想看看CL能不能做个C++的Destructor出来
你比較下用 Chez 的 eval 和用 CCL 的 funcall 哪个快。
你引用的就是我在评论使用体验的话,不成你是语文出题老师,理解得比我这个原作还好?
结和上一句,看來你估计是瞎了,沒救了。
野獸论证,Paul Graham 在 on lisp 一书中用 CL 实现了 call/cc,有了 call/cc
scheme 版本 values
就 trival,易证 CL 可实现 scheme 版本 values
你是不是不举?
不懂有 GC 了为啥还要 destructor,如果说 external memory, pointer finalizer 倒是有的。
这句不是说的动态性这种东西?
这两是一码事?
你告诉我在这些方面,Julia 难道能比 Smalltalk 厉害?
哦 ,call/cc 原来支持传多个参数啊可以直接捕获一个接受多值的 continuation 啊
继续:
- 在 CL 里实现一个默认 lazy 语义
- 在 CL 里实现完全 immutable
- 在 CL 里搞一个用 “linear logic” 类型标记优化内存使用
抬杠都抬不好,上来喷脏,还是回家至少看一下 r5rs 再来吧。
原作者: 不是
对我这个 mac 用户來说沒有 native feeling GUI 0 分。Julia (Jupyter) 做得至少比 Self Squeak 什么的好看。主观感受你还能分对錯?
https://common-lisp.net/project/clazy/
只要不用,就是 immutable,JSFP 不就是如此?
http://home.pipeline.com/~hbaker1/Use1Var.html
> (call/cc (lambda (c) (c 1 2 3)))
1
2
3
「这是得了下等混一色的病,是日麻的大近视」请脑䃼一下这里放这句话什么意思。
destructor不光是为了释放内存,更主要的是deterministic的资源管理。譬如一个对象封装了一个GPU buffer,我会需要它一离开作用域立即调用destructor释放,而不是慢悠悠等GC来finalize。CL可以用(with-xxx )之类的解决一小部分,但是非局部作用域的情况我想不出来有什么好方法。
那么有种叫 deterministic GC 的東西可以直接接管。liner logic 也可以靜态分析什么时候该释放资源。
你随便丢两个名词出来就算是CL有这个功能了?按正常人的逻辑,两行的destructor,CL如果20行内写不出来那我觉得就不算语言能支持这个功能。如果需要拖一个大库进来才可以,那我直接说我用C++链接一个LISP解释器所以所有这些功能C++都支持了可不可以?
那我理解错来呗。所以原文比较的是什么系统交互的东西?让 Smalltalk 都黯然无光来呢?
(GUI Smalltalk 确实做的烂)
天才!
那你用 call/cc
实现一下吧,我学习学习(continuation 确实没学好)
可以的,C++ 最强,什么都支持,但是你得先链接完了再來说,現在说太早了一点点。因为你链接完了我就可以说 C++ 是一种 Lisp,所以 C++ 都支持很正常。
所以 CL 能有 depentent type 吗?(「没有什么语言特性 CL 是做不到的」又在我脑海回响)
我已經实现好了,还是你要个 define
才看得懂?
(define values (lambda a (call/cc (lambda (c) (apply c a)))))
可是我讲了这么多,你們又不去用,我讲个几把。
call-with-values
呢,光给我一个 values,没有配合的工具,我怎么用啊?
既然 CL 有 depentent type,那为什么要跑去用 APL 呢?APL 有什么功能是 CL 没有的吗?
因为 dependent type 是个
沒用的垃圾。
那你直接说 depentent type 是垃圾不就好了?没必要特地找一篇论文出来的,我又看不懂。
那 call-with-values
呢
所以为什么要跑去用 APL 呢?APL 有什么特性是 CL 没有的吗?
因为你们这些 normie 无法学会 APL,可以让我继续把你当成无知的人
这是又一个可以说明 Scheme 所称的优雅一无是处的例子,call-with-values
沒法不用 primitive 实现。
(define values list)
(define (call-with-values producer consumer)
(apply consumer (producer)))
原来 values 这么简单啊,学习了。看来这个功能其他语言都可以有呢,其他的小朋友们可以去尝试实现一个 Common Lisp 的 values 哦
所以这个特性是 CL 没有的吗?CL 不是什么特性都可以实现的吗?