gpt4 book ai didi

parsing - 在 Racket 方案中读取字符串循环

转载 作者:行者123 更新时间:2023-12-02 21:19:51 24 4
gpt4 key购买 nike

我正在使用 Racket 方案。我定义了一个字符串,我正在尝试解析它。

我最初有

(define expression (open-input-string "(expression here)"))

现在我尝试使用方案读取函数迭代所有字符。不过,我是计划新手,不太确定如何正确循环它们。

本质上我需要循环所有

read-char expression

谢谢

最佳答案

您不希望对这样的事情进行简单的读取。它是为了读取Scheme/Racket 语法而不是任意数据而构建的。相反,您可能想要 string->list ,它将字符串拆分为字符列表。

(string->list "(expression here)")
; => '(#\( #\e #\x #\p #\r #\e #\s #\s #\i #\o #\n #\space #\h #\e #\r #\e #\))

也许您不想一次读取整个字符串?确实存在read-char功能,正如您在帖子中所包含的那样。 Racket 中有很多循环的方法。可以使用递归,也可以使用Racket的plethora of for loop forms .

不过,如果您有一个输入端口并且只想循环所有字符,那么也有一种简单的方法可以做到这一点!您可以使用方便的in-input-port-chars带有 for 循环的序列如下:

(define expression (open-input-string "(expression here)"))
(for ([c (in-input-port-chars expression)])
(display c))
; => (expression here)

关于parsing - 在 Racket 方案中读取字符串循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28359078/

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