私は以下に「手続きを定義する leet-speak は文字列を受け取り、すべての s を 5 に、すべての e を 3 に、すべての l を 1 に、すべての o を 0 に変更した結果を返す」というプログラムを書きました。これを行います。単純にstring->list
、map
、およびを使用してlist->string
ください。」
私が得たエラーは次のとおりです。
~ (leet-speak "leet speak neat speak")
Exception: attempt to apply non-procedure (1 3 3 #\t #\space 5 ...)
の私の定義は次のleet-speak
とおりです。
(define leet-speak
(lambda (y)
(list->string
((map
(lambda (x)
(cond
[(eq? #\l x) 1]
[(eq? #\s x) 5]
[(eq? #\o x) 0]
[(eq? #\e x) 3]
[else x])
) (string->list y )))))
どこに問題があるのか本当にわかりません。