gpt4 book ai didi

scheme - 如何在方案中设置默认或可选参数?

转载 作者:太空宇宙 更新时间:2023-11-03 18:38:28 28 4
gpt4 key购买 nike

我正在尝试弄清楚如何在 Scheme 中设置默认或可选参数。

我试过 (define (func a #!optional b) (+ a b)) 但我找不到检查 b 是否为默认参数,因为简单地调用 (func 1 2) 会给出错误:

Error: +: number required, but got #("halt") [func, +]

我也试过 (define (func a [b 0]) (+ a b)) 但我得到以下错误:

Error: execute: unbound symbol: "b" [func]

如果有帮助,我正在使用 BiwaScheme用于 repl.it

最佳答案

这在 Racket 中工作正常:

(define (func a (b 0)) ; same as [b 0]
(+ a b))

例如:

(func 4)
=> 4
(func 3 2)
=> 5

...但这不是标准语法,它取决于所使用的 Scheme 解释器。有处理可变数量参数的语法,它可用于处理具有默认值的可选参数,但它看起来不那么漂亮:

(define (func a . b)
(+ a (if (null? b) 0 (car b))))

它是如何工作的? b 是参数的列表。如果为空,则使用零,否则使用第一个元素的值。

关于scheme - 如何在方案中设置默认或可选参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36213204/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com