1
我創建了將單詞轉換爲他們的明膠對應物的明膠翻譯器。將字符串轉換爲字符串序列
按照下面的步驟,
(translate '("ark" "gold"))
給
"arkway golday"
但是我想輸入簡單(翻譯 「方舟金」),並獲得 「arkway golday」
我想我'd使用字符串拆分和字符串加入,但我似乎是在添加一個錯誤:
(define (piglatin phrase)
(string-split translate phrase))
和運行(piglatin「( 「方舟金」))
給我的錯誤:
string-split: contract violation
expected: (or/c string? regexp?)
given: '("ark gold")
代碼:
#lang racket
(define (piglatin phrase)
(string-split translate phrase))
(define (translate sentence)
(string-join (map breakSentence sentence)))
; break down sentance string split into a list
(define (breakSentence word)
(list->string (listWord (string->list word))))
; break down word for vowel testing
(define (listWord word)
(cond
((foundVowel (car word))
(startsVowel word))
(else(noVowel word '()))))
; letters that are vowels, their prensence indicates way should be added to end
(define (foundVowel letter)
(member letter '(#\a #\e #\i #\o #\u #\y)))
; allow adding way to end of word
(define (startsVowel word)
(append word '(#\w #\a #\y)))
'string-split'將第一個參數當作一個字符串,而給它一個函數'translate'。檢查你的括號。 – Renzo
你的翻譯是不是正確。它應該是「arkway」,「oldgay」 – stark