Я недавно (снова) взял в руки Haskell, просто для удовольствия - потому что учусь на протяжении всей жизни. Я старею, для молодежи, помимо того, что вы знаете (скорее всего, Java, JavaScript, PHP, C #, Python, Ruby), я настоятельно рекомендую выучить хотя бы:

  • Системный язык, например C / C ++, Go, Rust и т. Д. (C рекомендуется, остальные вам понравятся больше).
  • (Чистый) функциональный язык, обязательно порекомендую Haskell!
  • Дискретная математика, только основы.

Вам не нужно полностью понимать (или покрывать) что-либо из них, не говоря уже об освоении. Запутаться - это нормально, вы в хорошей компании, в том числе и я. Это часть процесса обучения.

Они сделают вас лучшим мастером программного обеспечения, предоставив вам практический способ изучения различных парадигм программирования и формирования вашего мышления в качестве лица, решающего проблемы:

Языки приходят и уходят влево и вправо в зависимости от того, «что популярно». Технология устаревает через несколько месяцев или лет, в зависимости от того, какова технологическая кривая. (Интернет осуждает технологии каждые 6 месяцев).

Техника программирования и теория информатики всегда остаются неизменными.
- источник

В этой серии, которую я называю Pearls from Haskell (далее PFH # ‹number›), я буду выделять вещи из Haskell, от которых у меня мурашки по коже :)

Что касается пункта 1, я начну с понимания списка. Что впечатляет в LC в Haskell, так это то, что он так похож на то, что вы находите в своей дискретной математике.

Например:

В Haskell это приведет к следующему:

Ищите PFH # 2, дай Бог :)

PS. Вы хотите, чтобы мы подружились и изучали нас Haskell вместе, отправьте мне запрос, добавив +1 к этой проблеме Github здесь.