Я пытаюсь немного понять Haskell, и я чередую трепет и недоумение. Одной из действительно отталкивающих вещей для меня, как бы тривиальной это ни казалось, является идиома сопоставления с образцом (x: xs)
. Откуда берутся эти имена переменных? Они могут быть чем угодно - (ядро: cob)
, (спам: яйца)
(слегка наклонив руку) или - что наиболее разумно, на мой взгляд, (h: t)
, что означает «голова» и «хвост».
Я полагаю, что префикс x
полезен для указания, что оба элемента происходят из одного и того же списка, поэтому тогда (xh: xt)
или даже просто (x: xt )
, если вы чувствуете себя особенно лаконично. Но почему s ? Что это означает? Откуда это? В настоящий момент я чувствую, что знание поможет мне справиться с замешательством.
Возможно, я неправильно об этом думаю; пожалуйста, сообщите мне об этом.