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