以下の文字列暗号化コードを記述しました。しかし、ハードコーディングされた値を使用する代わりに、(読み取り)を使用してキーボードから暗号化キーを取得できるようにしたい。しかし、マップは引数としてリストを取るので、私はそれを行うことはできません。上位関数マップを使用した文字列の暗号化
#lang racket
(define character-encryption
(lambda (ch)
(if (char-alphabetic? ch)
(character-rotation ch 3)
ch))) ; non-letter will not be encrypted.
(define character-rotation
(lambda (ch num)
(integer->char (+ (char->integer ch) num)))) ; key=3
(define string-encryption
(lambda (str)
(list->string (map character-encryption (string->list str)))))
UPDATE
> (string-encryption (read))
"foo bar" ; <- entered
"irr edu" ; output
UPDATE
#lang racket
(define character-encryption
(lambda (key)
(lambda (ch)
(if (char-alphabetic? ch)
(character-rotation ch key)
ch)))) ; non-letter will not be encrypted.
(define character-rotation
(lambda (ch num)
(integer->char (+ (char->integer ch) num)))) ; key=3 (I want to read this number)
(define string-encryption
(lambda (key str)
(list->string (map (character-encryption key) (string->list str)))))
を私は、暗号化キーを読みたいです。上記のコードでは、3としてコード化されています。文字列を読みたくありません。 –
like(文字列暗号化 "foo bar"(読み取り)) –
ありがとうございます。私の初めてのstackoverflowを使用しています。あなたは本当に私を助けました。更新された手続きに感謝します。 –