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