は、ここでそれを行うための一つの方法です:
(define alphabet (string->list "abcdefghijklmnopqrstuvwxyz"))
(for ([letter alphabet])
(displayln letter))
あなたはしかしfor
ループでより多くを行うことができます。例えば、
(for/list ([let alphabet] [r-let (reverse alphabet)])
(list let r-let))
は、他の方向に進む文字と対になる文字のリストを生成します。それは実際にマップとして表現されていますが、(map list alphabet (reverse alphabet))
です。
さらに、必要な場合は、SRFI-14は文字セットより多くの操作を提供します。
編集:もともと、私はchar->integer
、integer->char
、およびrange
で何かをしましたが、今はもっと簡単です。
#lang racket
(for ([letter (in-range (char->integer #\a)
(add1 (char->integer #\z)))])
(printf "The letter is ~a\n" (integer->char letter)))
ラケットは、Cが許可文字と整数の間の暗黙的なpunningをサポートしていません:Cとは異なり、ラケット値の型は、固有のものである答えの一つが、直訳のアプローチを示してちょうどそのよう
基本的に、アルファベット全体を明示的に定義しなくてもそれを行う方法はないということです。 – Daniel
ラケットはC++ではないので、文字と整数の間には罰せられません。本当に本当にしたいのなら、 '(char-> integer#\ a)'で始まり '(char-> integer#\ z)'で終わるループを書くことができますが、そのようにプログラムする良い理由はありませんラケット。 C++では、他の文字セットに対して反復処理を行いたい場合は、そのようなことをしなければならないことに注意してください。 –
どうもありがとう! – Daniel