У меня проблемы с поиском части строки для первого имени, когда длина электронного письма goose меньше 9
(check-expect( goose-mail "becky""anderson"12)"12abecky@uragoose.ca")
В Goose университете студентам дается уникальное имя пользователя на основании их имени и специального идентификационного номера. Имя пользователя начинается со специального идентификационного номера, за которым следует первая буква их фамилии, а затем имя. Все имена пользователей ограничены максимум 9 буквами, поэтому часто бывает так, что в них включена только часть имени. Все имена пользователей указаны в нижнем регистре. Специальный идентификационный номер - это положительное целое число, которое меньше 1000. Адрес электронной почты - это имя пользователя с добавленным к нему «@ ura goose .ca». Напишите функцию Racket goose -mail, которая использует две непустые строки имя-фамилия, фамилия и неотрицательное целое число ID-num, где 0 ≤ ID-num ≤ 999 и создает адрес электронной почты для студента с указанными именами и фамилиями и идентификационным номером. Имя и фамилия имя указано в нижнем регистре.> То, что у меня есть, это
(check-expect(1st-last-name-letter "pham")"p")
(define(1st-last-name-letter L)
(substring L 0 1))
(check-expect(ID-num 12)"12")
(define (ID-num ID)
(number->string ID))
(check-expect(user-name "andrew" "pham" 123)"123pandrew")
(define(user-name first-name last-name ID)
(string-append (string-append(ID-num ID)(1st-last-name-letter last-name))
first-name) )