Tôi nghĩ một điều có lẽ bạn đang gặp phải là điều mà tôi cũng gặp phải khi học lập trình chức năng, đó là với lập trình chức năng, bạn có thể (và gần như phải) nghĩ / làm việc ở cấp độ cao hơn so với lập trình bắt buộc.
Những gì bạn đang tìm thấy ít biểu cảm hơn, tôi nghĩ thực sự biểu cảm hơn : bạn không cần phải đánh vần từng chi tiết nhỏ và có thể làm nhiều hơn với ít mã hơn trong lập trình chức năng - có nhiều sức mạnh hơn những gì bạn viết.
Ví dụ, tôi có thể viết một cách bắt buộc:
for each (Person person in people)
print(person.name)
đó là hoàn toàn dễ đọc như tiếng Anh.
Phiên bản Haskell có thể là (và đây không phải là Haskell hợp lệ, nhưng chỉ để so sánh cú pháp):
map (print . name) people
trong đó yêu cầu ít mã hơn và ít chi tiết hơn - tôi không phải chia mọi thứ thành một vòng lặp và biến (s) ( for each (...)
) của nó, map
hàm này đảm nhiệm việc đó cho tôi.
Làm việc ở cấp độ đó có thể mất một số làm quen. Nếu nó giúp được gì, Haskell có lẽ là thời điểm khó khăn nhất tôi đã học một ngôn ngữ mới kể từ khi tôi bắt đầu lập trình và tôi biết> 10 ngôn ngữ (bao gồm cả Lisp). Nó hoàn toàn đáng để học hỏi.