scheme - Let-Form 在 Scheme 中绑定值
问题描述
我应该重新实现以前实现的称为“产品”的过程。我将使用 let-form 绑定值并使用(ProductLet 60 40)
. 我的代码不能正常工作,我不知道为什么。
(define (ProductLet a b)
(let ((p a)(q b))
p q
(* p q))
)
(ProductLet 60 40)
解决方案
您的代码看起来不错 - 好吧,我将删除带有p
和q
正文的前两行let
,它们在那里实际上什么也没做:
(define (ProductLet a b)
(let ((p a) (q b))
(* p q)))
(ProductLet 60 40)
=> 2400
请注意,a 的主体let
就像过程的主体:所有的表达式都会被执行,但只会返回最后一个表达式的值。例如,如果您想显示需要显式打印它们的变量,因为在执行过程时不会返回它们:
(define (ProductLet a b)
(let ((p a) (q b))
(displayln p)
(displayln q)
(* p q)))
(ProductLet 60 40)
60
40
2400
推荐阅读
- node.js - 生产环境中 node.js 应用程序中 connect.sid 和会话的问题
- azure - 自定义视觉保存当前模型
- python - 如何在 url 中获取项目搜索显示的名称
- pytorch - 如何在 pipenv 中指定 pytorch / cuda 版本
- r - 用 latex2exp 将函数和变量替换为 LaTeX 字符串
- c# - 自动清算控制
- bash - 如何使用 sed 在给定的行范围/模式内的匹配之前添加行?
- laravel - Laravel 关系在到达 Vue 中的相应属性时会导致错误
- assembly - 大会 x86:加载第二阶段
- docker - Docker for Windows 将 Linux 容器连接到 Windows 主机网络