【问题标题】:peek-char in scheme方案中的 peek-char
【发布时间】:2012-05-07 22:10:17
【问题描述】:

只需要知道偷看计划的基础知识。我尝试查看球拍网站寻求帮助,但没有太多内容。或者,也许我在寻找错误的部分。无论如何,重点如下。

如果我有(#\x #\b #\o #\x #\space #\3 #\6 #\0)

我希望能够将 x 识别为 char,然后继续查看直到达到空格并将其重新定义为单词。然后对 360 执行相同的操作。

有什么建议吗?谢谢,麻烦您了! :)

这是我的代码的样子,以防万一

(define (work x) 
(cond
((null? x)(write '$$))
(char-numeric? (car x))
(write 'Num)
(toke (cdr x)))
((char-alphabetic? (car x))
(write 'ID)
(work (cdr x)))
(else (write "other")))

这样做的问题是它会给我“xbox”的 IDIDIDID(这是代码的合理原因),但我想让它为整个单词 xbox 只输出一次 ID

Oscar,我知道你帮我解决了这个问题,但我缺乏计划知识并没有让我走得更远。很抱歉重新发布。

【问题讨论】:

    标签: scheme racket


    【解决方案1】:

    请参阅手册中有关 peek-char 的部分:http://docs.racket-lang.org/reference/Byte_and_String_Input.html#(def.((quote.~23~25kernel)._peek-char))

    一个例子(我使用一个字符串作为输入端口,以便 无需额外数据文件的示例):

    > (define a-string "Foo bar")
    > (define in (open-input-string a-string))
    > (peek-char in)
    #\F
    > (peek-char in)
    #\F
    > (read-char in)
    #\F
    > (peek-char in)
    #\o
    > (peek-char in)
    #\o
    > (read-char in)
    #\o
    > (read-char in)
    #\o
    > (peek-char in)
    #\space
    

    【讨论】:

    • 谢谢!这就是我需要知道的。我可以从这里拿走:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 2021-01-20
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    相关资源
    最近更新 更多