Пару можно создать на основе строки. Для хранения двух значений применим разделитель. Им может выступить любой символ, однако во избежание совпадений с исходными данными лучше взять редко используемое значение.
Для этого подойдёт так называемая управляющая или escape-последовательность, которая начинается с обратной косой черты. Мы будем использовать специальный символ \t
, обозначающий горизонтальную табуляцию.
Функции car()
и cdr()
должны получить содержимое строки до и после разделителя соответственно.
Управляющая последовательность воспринимается интерпретатором как одиночный символ, т.е. имеет длину, равную 1.
Обязательным условием является отсутствие данного символа в строках, которые объединяются в пару.
lib/pairs.rb
Реализуйте и экспортируйте следующие функции в соответствии с алгоритмом выше:
cons()
car()
cdr()
Примеры:
const pair = cons('computer', 'science') # 'computer\tscience'
car(pair) # 'computer'
cdr(pair) # 'science'
Для полного доступа к испытанию нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.