다음 문자열 암호화 코드를 작성했습니다. 하지만 하드 코딩 된 값을 사용하는 대신 키보드에서 암호화 키를 가져올 수 있기를 원합니다. 그러나지도가 인수로 목록을 사용하기 때문에 나는 그것을 할 수 없습니다.고차 함수 맵을 사용한 문자열 암호화
#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를 처음 사용했습니다. 너 정말 나를 도와 줬어. 업데이트 된 절차 덕분에 일했습니다. –