计划中的peek-char

时间:2012-05-07 04:57:27

标签: scheme racket

只需了解计划中偷看的基本知识。我试着看看球拍网站寻求帮助,但它并没有太大的帮助。或许我正在寻找错误的部分。无论如何,关键在于以下几点。

如果我有(#\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

奥斯卡,我知道你帮我解决了这个问题,但我对计划缺乏了解,这让我无法走得太远。对不起,重新发布。

1 个答案:

答案 0 :(得分:3)

请参阅手册中的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