Scheme中文社区 theschemer.org » 搜索 » user:qzivli post:true

关于call/cc的小问题

(define x   (call/cc    (lambda (k) ; 这里的k是:定义x,然后去top-level      k)))             ;; (define y ;;   (call/cc x)) ;; 和上面的是等价的,但更方便阐述 (但愿我没有搞错 :-p) (define y   (call/cc    (lambda (k) ; 这里的k是:定义y,然后去top-level      (x k))))  ; 这里发生了什么?把x定义为一个定义y的延续,然后去top-level
continuation Scheme qzivli •  2019-04-29 • 最后回复来自 include
3
16

2019年社区计划

建议:建立code examples/snippets 分享专区

Scheme qzivli •  2018-12-10 • 最后回复来自 guenchi
7

有对翻译csug文档感兴趣的同学吗?

github: qzivli

Chez 学习 资料 qzivli •  2018-12-08 • 最后回复来自 mrlambda
30

An introduction to scheme and its implementation

并不总是需要翻译书籍。还可以每次以一个主题自己把玩,然后做一些分享。王垠早期的文章就是这样的。

Scheme 学习 qzivli •  2018-12-05 • 最后回复来自 include
4

有对翻译csug文档感兴趣的同学吗?

有好的翻译平台吗?


我愿意参加CSUG和TSPL的翻译。

Chez 学习 资料 qzivli •  2018-12-03 • 最后回复来自 mrlambda
30

Scheme和Comme Lisp区别

Guy L. Steele Jr 对 Common Lisp 的抱怨:

In Common Lisp, why are there many namespaces (variables, functions, go tags, block names, catch tags, …) ?

Scheme Comme Lisp qzivli •  2018-11-23 • 最后回复来自 physcrf
3

请教一下大家如何debug加断点

用 (break obj)


我一般进去之后按 i,然后用 b 和 f 移动,用 s 显示一些信息。


如果有异常发生,(debug)可以进入debug环境。如果启动scheme的时候加了--debug-on-exception 选项,有异常发生的时候会自动进入debug环境。


debug qzivli •  2018-11-20 • 最后回复来自 guenchi
3

把Swish里面的JSON库移植到Kawa了 :-)

小组里的项目,可能会用Java来做,弄点Kawa的库,到时候搞点事情。

Scheme qzivli •  2018-11-20 • 最后回复来自 guenchi
1

Scheme在工程化和商业化上的应用有哪些

Guile


Gnu Guix https://www.gnu.org/software/guix/

Scheme qzivli •  2018-11-19 • 最后回复来自 guenchi
16

Rscheme是啥

你说的是这个吗?https://en.m.wikipedia.org/wiki/RScheme

Scheme qzivli •  2018-11-18 • 最后回复来自 guenchi
2

Scheme在工程化和商业化上的应用有哪些

Kawa Scheme

http://www.narrativeandplay.org/hypedyn/ http://appinventor.mit.edu/explore/ https://www.nuecho.com/en/

Scheme qzivli •  2018-11-17 • 最后回复来自 guenchi
16

推荐一本好书

你说的是这个吗?https://en.m.wikipedia.org/wiki/RScheme

Scheme 学习 qzivli •  2018-11-17 • 最后回复来自 guenchi
2

Scheme在工程化和商业化上的应用有哪些

Chez Scheme:


* Beckman Coulter Inc., an

Scheme qzivli •  2018-11-16 • 最后回复来自 guenchi
16

hashtable-merge!

如果键key之前不存在于ht中,就将key的值设为value;如果已经存在,则把key的值和新的值value传给过程proc,将proc的返回值更新到key。需要注意的是proc的参数顺序:

(proc old-value value)(define (hashtable-merge! ht key proc value)   (if (hashtable-contains? ht key)       (let (
Scheme qzivli •  2018-11-15

Chez Scheme过程参数的求值顺序

回复#1 @qww6 :


感谢老师的解释 :-)

Chez Scheme qzivli •  2018-11-05 • 最后回复来自 guenchi
4

Chez Scheme过程参数的求值顺序

Scheme有意不对过程参数的求值顺序加以规定,每个Scheme实现的参数求值顺序都可能是不同的,可能是从左到右(像Common Lisp那样),也可能是从右到左,还可能是其他任意顺序。


Chez Scheme的参数求值顺序比较奇特,看起来就像是参数被两两分组入栈,然后再出栈。例如:

(f a   b  c  d  e)    ╰──╯ ╰──╯

a, b一组入栈,c, d一组入栈,e落单了,单独入栈;然后再出栈。求值顺序是e, c, d, a

Chez Scheme qzivli •  2018-11-05 • 最后回复来自 guenchi
4

切分字符串的方法

回复#40 @guenchi :

;; > (string-split "foo::bar" #\:) ;; ("foo" "" "bar") ;; ;; > (string-split/drop-null "foo::bar" #\:) ;; ("foo" "bar") (define (string-split/drop-null str sep)   (define (cons/drop a b)     ;; s
Scheme qzivli •  2018-11-03 • 最后回复来自 yanying
43

切分字符串的方法

回复#38 @guenchi :

这应该不是一个bug,"foo:bar" 和 "foo::bar" 切分后的结果应该是不一样的。


以下的结果还是"foo::bar"才对

Scheme qzivli •  2018-11-02 • 最后回复来自 yanying
43

找到一个过程的list

做了一个假的“在线帮助”,https://github.com/qzivli/chez-help。


Scheme 资料 qzivli •  2018-11-02 • 最后回复来自 qzivli
1
登 录
信息栏

Scheme中文社区

推荐实现 ChezScheme / r6rs / r7rs large
theschemer.org
Q群: 724577239

精华导览

社区项目

包管理器:Raven
HTTP服务器:Igropyr (希腊火)
官方插件:vscode-chez

社区目标:

完善足以使Scheme工程化和商业化的库,特别是开发极致速度的Web服务器和ANN模块。

一直以来Scheme缺少一个活跃的中文社区,同时中文资料的稀少,导致大多数因为黑客与画家和SICP而接触Scheme的朋友,在学完SICP后无事可做,不能将Scheme转换为实际的生产力。最后渐渐的放弃。
同时Chicken等实现,却因效率问题无法与其他语言竞争。本社区只有一个目的,传播Scheme的文明之火,在最快的编译器实现上,集众人之力发展出足够与其他语言竞争的社区和库。


友情链接:

Clojure 中文论坛
函数式·China