1

スキームの覗き見の基本を知る必要があるだけです。参考にラケットのサイトを見てみましたが、あまり載っていませんでした。または、間違ったセクションを探していたのかもしれません。何はともあれ、今回のポイントは以下。

私が持っている場合(#\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 回だけ出力するようにしたいと考えています。

オスカー、あなたがこれを手伝ってくれたことは知っていますが、計画に関する知識が不足していたため、うまくいきませんでした。再投稿すみません。

4

1 に答える 1

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
于 2012-05-07T06:33:10.793 に答える