Предупрежу, что в схемах и лиспах я нуб. Решил ради интереса порешать задачки на ракете. Задача заключается в том, чтобы перебрать строку и посчитать очки за каждую букву, разные буквы стоят разное количество очков. Накидал вот такое решение:
#lang racket
(define (score word)
(for/sum ([i (string->list word)])
(case i
[('A 'E 'I 'O 'U 'L 'N 'R 'S 'T) 1]
[('D 'G) 2]
[('B 'C 'M 'P) 3]
[('F 'H 'V 'W 'Y) 4]
[('K) 5]
[('J 'X) 8]
[('Q 'Z) 10])))
Но столкнулся с тем, что case возращает #<void>
, Переписал на cond, но он тоже возвращает #<void>
. Неужели без дополнительной переменной sum не обойтись?