我被困在我知道的事情上很瑣碎,但我只是不知道該怎麼做。我將一個字符串轉換爲一個列表,稍微改變列表,然後將其轉換回字符串。將一個元素添加到列表的末尾,方案
我正在將單詞翻譯成豬拉丁文,但我無法在單詞的結尾添加「ay」。我知道如何獲取列表的第一個元素並將其發送到後面,但由於某種原因,我的代碼不會添加「ay」。我之前在方案中附加了列表,這是相對直接的,但我不明白爲什麼它不在這裏工作,我嘗試了一些不同的方法。
下面是代碼:
(define (member? item seq)
(sequence-ormap (lambda (x)
(equal? item x))
seq))
(define (vowel? letter)
(member? letter '(a e i o u)))
(define (first-to-last x) (append (cdr x) (list (car x))))
(define (piglatin wd)
(define stringlist (string->list wd))
(cond
[(vowel? (car stringlist)) (append 'yay stringlist)]
[else (define pigstringlist (first-to-last stringlist)) (append pigstringlist '(ay)) (list->string pigstringlist)])
)
我希望,看上去一切正常,除了不能追加到列表的末尾。我覺得我錯過了一些簡單的東西,但是我想學習來自C/Java背景的方案,而這些東西都是巨大的時間消費者。如果有人看到任何我會非常感激的。我可以使用一些建議並修改這些代碼,因爲它對我來說似乎有點兒意思。
這裏的輸出,對"home"
(piglatin "home")
"omeh"