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

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

用 (break obj)


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


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


debug qzivli •  13 小时前 • 最后回复来自 guenchi
3

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

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

Scheme qzivli •  1 天前 • 最后回复来自 guenchi
1

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

Guile


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

Scheme qzivli •  1 天前 • 最后回复来自 qzivli
10

Rscheme是啥

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

Scheme qzivli •  3 天前 • 最后回复来自 guenchi
2

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

Kawa Scheme

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

Scheme qzivli •  3 天前 • 最后回复来自 qzivli
10

推荐一本好书

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

Scheme 学习 qzivli •  3 天前 • 最后回复来自 guenchi
2

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

Chez Scheme:


* Beckman Coulter Inc., an

Scheme qzivli •  5 天前 • 最后回复来自 qzivli
10

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 •  5 天前

Chez Scheme过程参数的求值顺序

回复#1 @qww6 :


感谢老师的解释 :-)

Chez Scheme qzivli •  16 天前 • 最后回复来自 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 •  16 天前 • 最后回复来自 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 •  18 天前 • 最后回复来自 yanying
42

切分字符串的方法

回复#38 @guenchi :

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


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

Scheme qzivli •  19 天前 • 最后回复来自 yanying
42

找到一个过程的list

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


Scheme 资料 qzivli •  19 天前 • 最后回复来自 qzivli
1

切分字符串的方法

回复#36 @guenchi :


(stri

Scheme qzivli •  20 天前 • 最后回复来自 yanying
42

Scheme in Real World

OCaml挺幸运的,遇到JaneStreet这样的公司。

Scheme qzivli •  21 天前 • 最后回复来自 guenchi
2

给Chez Scheme的process添加一个类似commands.getstatusoutput()的过程

Chez Scheme 外部接口的文档https://cisco.github.io/ChezScheme/csug9.5/foreign.html


本帖是对Chez Scheme外部接口的一个简单应用,对于新手有一定价值,老手请直接略过。

Scheme qzivli •  21 天前 • 最后回复来自 qzivli
2

给Chez Scheme的process添加一个类似commands.getstatusoutput()的过程

;; Chez Scheme的内建库中没有一个像Python或Gambit-C那样可以同时获取一个 ;; 外部命令的退出状态和输出文本的过程。 ;; "system" 只获取命令的退出状态,并不捕获其输出文本; ;; "process" 返回一个包含三个元素的列表: ;;   0 - input port (即系统的stdout) ;;   1 - output port (即系统的stdin) ;;   2 - pid ;; 我们可以从stdout获取命令的输入文本,通过C函数waitpid得到命令的退出状态。
Scheme qzivli •  23 天前 • 最后回复来自 qzivli
2

推荐Ikarus的用户手册

抱歉,忘记了。链接在这里:https://github.com/ih/ikarus.dev/tree/master/doc



Scheme 学习 资料 qzivli •  25 天前 • 最后回复来自 qzivli
2

推荐Ikarus的用户手册

不同于The Scheme Programming Language和Chez Scheme User Guide,Ikarus的手册既不详细介绍Scheme语言,也没有详尽地介绍Ikarus,而是假设读者已经熟悉R5RS或SICP之类的东西,只快速介绍R6RS新增的部分,而且讲的很好。很适合读过SICP之后想要用Scheme写“Real World”代码的读者。

Scheme 学习 资料 qzivli •  26 天前 • 最后回复来自 qzivli
2

推荐Ikarus的用户手册

不同于The Scheme Programming Language和Chez Scheme User Guide,Ikarus的手册既不详细介绍Scheme语言,也没有详尽地介绍Ikarus,而是假设读者已经熟悉R5RS或SICP之类的东西,只快速介绍R6RS新增的部分,而且讲的很好。很适合读过SICP之后想要用Scheme写“Real World”代码的读者。

Scheme 学习 资料 qzivli •  26 天前 • 最后回复来自 qzivli
2
登 录
信息栏

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