gpt4 book ai didi

Racket:for 内部的词法范围

转载 作者:行者123 更新时间:2023-12-01 09:02:13 24 4
gpt4 key购买 nike

在 Haskell 中,在列表推导中,我可以在每次迭代时将表达式绑定(bind)到一个变量:

[a | x <- xs, let a = x ^ 2, a >= 25]

如何在 Racket 的 for 理解中绑定(bind)词法变量?

目前我有这个代码:

(define (euler4)
(apply max
(for*/list ([i (in-range 100 1000)]
[j (in-range i 1000)]
#:when (string=? (number->string (* i j))
(string-reverse (number->string (* i j)))))
(* i j))))

我想将 (* i j) 绑定(bind)到一个变量,并将表达式替换为函数中的任何位置。

最佳答案

使用 in-value表单具有绑定(bind)到单个值的循环变量。

在你的例子中:

(define (euler4)
(apply max
(for*/list ([i (in-range 100 1000)]
[j (in-range i 1000)]
[ij (in-value (* i j))]
#:when (string=? (number->string ij)
(string-reverse (number->string ij))))
(* i j))))

关于Racket:for 内部的词法范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14979231/

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