私は関数型プログラミングが初めてで、リストパラメーターを取り、リストが各シンボルの長さが1のシンボルで構成されている場合にtrueを返す関数を作成しようとしています。より具体的には、
;(sequence? '(a b c)) ----> true
; (sequence? '(aa b c)) ---> false since aa has length 2
; (sequence? '(a 1 c)) ----> false since 1 is not a symbol
; (sequence? '(a (b c))) --> false since (b c) is not a symbol
私は次のことを考えています: リスト内の各シンボルについて、それがシンボルであり、長さが 1 であるかどうかを確認します。
(define sequence?
(lambda (inSeq)
(if ( for each item in the list inSeq, all are symbols and length=1) #t #f)
)
)
次に、結果に応じて、true または false を返します。しかし、リストを反復処理する方法がわかりません。リストを文字列に変換して文字列関数を使用したくありません。「foreach」や for loop のようなステートメントはありますか? または他の提案はありますか?
注:車を使用してから取り外して残りのリストを見ることも考えましたが、長さがわからないため、車を何回使用するか、つまり車にする必要があるかどうかはわかりません。カー、カー、など。
ありがとうございました