gpt4 book ai didi

loops - Scheme 中的 "for each"或 "every"关键字

转载 作者:行者123 更新时间:2023-12-04 06:08:00 24 4
gpt4 key购买 nike

Scheme 中是否有for 循环或for each 循环?

我一直在四处搜索,发现有一个关键字“every”,但是我使用的方案编译器语言没有预构建这个函数。这就是它的假设做,可以找here

(define (first-letters sent)
(every first sent))

> (first-letters '(here comes the sun))
(H C T S)

如何重写every函数?使用其他预定义函数。我使用的语言在 DrScheme - 编程语言基础(第 3 版)

我试过DrScheme中所有预装的编译器,没有一个能编译every函数。

有什么想法吗?

最佳答案

您正在寻找 map,尽管您可能想知道 Scheme 也有 for-eachmap 使用 every 完全按照您的意愿行事。它对列表中的每个项目执行某些操作,返回一个新的结果列表。

你甚至可以说

(define every map)

你可以通过编写得到你的第一个函数

(define (first symbol)
(string->symbol (string (string-ref (symbol->string symbol) 0))))

不过,这是糟糕的 Scheme 风格。它看起来像是 60 年代或 70 年代的古老 Lisp,早在字符串出现在该语言中之前。无论如何,现在你可以说

(map first '(here comes everybody))
=> (h c e)

for-each 对列表中的每一项产生某种副作用:

(define initials (map first '(here comes everybody)))
(for-each display initials)
=> hce

关于loops - Scheme 中的 "for each"或 "every"关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1727664/

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