โดยทั่วไปฉันเห็นด้วยกับคำตอบของ FrustratedWithFormsDesignแต่คุณยังถามด้วยว่าการเรียนรู้กระบวนทัศน์ใหม่จะช่วยพัฒนาทักษะของตัวเองอย่างไร ฉันสามารถยกตัวอย่างสองสามอย่างจากประสบการณ์ของฉันเอง
ตั้งแต่การเรียนรู้การเขียนโปรแกรมการทำงานฉันรู้สึกตัวมากขึ้นเกี่ยวกับแนวคิดที่ฉันทำงานด้วยโดยทั่วไปถือว่าเป็น "วัตถุ" (โดยทั่วไปที่การกลายพันธุ์ทำให้รู้สึก) และที่ถือว่าเป็นธรรมชาติมากขึ้น "ค่า" ไม่เปลี่ยนรูป (ฉันคิดว่ามีความแตกต่างที่สำคัญ การสัมผัสว่า OO เหมาะสมกับอะไรเมื่อ FP มีเหตุผล แต่นั่นเป็นเพียงความคิดเห็นของฉัน)
ฉันสังเกตว่ารหัสของฉันรวมถึงผลข้างเคียงและฉันระมัดระวังในการแยกสถานที่เหล่านั้นออก สิ่งนี้ช่วยปรับปรุงความสามารถในการทดสอบโค้ด OO ของฉันอย่างมาก
ฉันมีสติมากขึ้นเกี่ยวกับรอบในการแสดงข้อมูลของฉัน (ตัวอย่างเช่นฉันไม่คิดว่าคุณสามารถเขียนฟังก์ชั่นเพื่อแปลงลิสต์ลิสต์เป็นลิสต์ที่ลิงก์เป็นทวีคูณใน Haskell ได้ดังนั้นคุณจะสังเกตเห็นวัฏจักรในภาษานั้นอีกเล็กน้อย) การหลีกเลี่ยงวัฏจักรลดปริมาณการซิงโครไนซ์ คุณต้องดำเนินการเพื่อให้โครงสร้างข้อมูลของคุณมีความสอดคล้องกันภายในช่วยลดภาระในการแบ่งปันโครงสร้างเหล่านี้ระหว่างเธรด
ฉันมีแนวโน้มที่จะพึ่งพาการเรียกซ้ำ (โครงสร้างวนซ้ำแบบวนซ้ำเป็นสิ่งที่สวยงาม) Dijkstra ได้สัมผัสกับความสำคัญของสิ่งนี้ในNotes on Structured Programming - อัลกอริทึมแบบเรียกซ้ำทำแผนที่โดยตรงกับการอุปนัยทางคณิตศาสตร์ซึ่งเขาแนะนำว่าเป็นวิธีเดียวที่จะพิสูจน์สติปัญญาของเราได้อย่างถูกต้อง (ฉันไม่แนะนำให้เราต้องพิสูจน์รหัสของเราให้ถูกต้อง แต่ยิ่งเราทำให้ง่ายขึ้นสำหรับตัวเราเองยิ่งมีโอกาสมากที่รหัสของเรานั้นถูกต้อง)
ฉันมีแนวโน้มที่จะใช้ฟังก์ชั่นที่สูงกว่า จอห์นฮิวจ์สกระดาษเรื่องการเขียนโปรแกรมทำไมฟังก์ชั่น มันเน้นย้ำถึงความสามารถในการเรียงความที่คุณได้รับจากการใช้เทคนิคการเขียนโปรแกรมฟังก์ชั่นฟังก์ชั่นที่มีลำดับสูงขึ้นมีบทบาทสำคัญ
นอกจากนี้เมื่อสัมผัสกับคำตอบของ Jettiคุณจะพบว่าความคิด FP จำนวนมากถูกรวมเข้ากับภาษา OO ที่ใหม่กว่า Ruby และ Python ทั้งสองมีฟังก์ชั่นการสั่งซื้อที่สูงขึ้นฉันได้ยิน LINQ อธิบายว่าเป็นความพยายามที่จะนำการสนับสนุนความเข้าใจแบบ monadic มาสู่ C # แม้ C ++ ในขณะนี้จะมีการแสดงออกแลมบ์ดา