





























~> [\[101\]如何在迭代展开过程中输出中间数据? \- Google 网上论坛]( https://groups.google.com/forum/#!topic/lisp-cn/Ny4nBE0igWw)
在 lisp-cn 列表中问出来了:
尝试用命令行跑一下
; member? _v1 尝试将探索过程打印出来
(define member1? ; 声明函式
(lambda (a lat) ; 绑定匿名函式, 接收参数 a lat
(format #t "~a->~a~%" a lat)
(cond ; 系列 if 判定
((null? lat) #f) ; 法则->先检验 目标原子是否为空? 是, 直接退出并返回 #f
(else (or ; 否则 or 一下两种对比
;(define lat1st (car lat))
;(display lat1st)
(eq? (car lat) a) ; 第一个成员是否和 对比原子相同?
;(eq? lat1st a) ; 第一个成员是否和 对比原子相同?
(member1? a (cdr lat)) ; 对其它成员使用 member1 (<--当然的要对应变化否则..) 进行检验
)
)
)
)
)
(define b 'egg)
(define lat `(fried eggs and scrambled egg))
(member1? b lat)
> ༄ chez member1.scm
Chez Scheme Version 9.4
Copyright 1984-2016 Cisco Systems, Inc.
egg->(fried eggs and scrambled egg)
egg->(eggs and scrambled egg)
egg->(and scrambled egg)
egg->(scrambled egg)
egg->(egg)
主要原因是, Calysto/calysto_scheme: A Scheme kernel for Jupyter that can use
Python libraries https://github.com/Calysto/calysto_scheme
这一 Jupyter 插件, 是用 Py 实现的一个 Scheme 模拟器,
本身不是完备的 Scheme 解析器,
缺少很多必要的函式支持,
所以, 切换到 CLI 环境中, 使用确实的 Scheme 运行环境运行,
就能获得预期结果了...
囧 rz...
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。