17
คุณจะทำอะไรที่มีประโยชน์โดยไม่เปลี่ยนสถานะได้อย่างไร
ฉันได้อ่านสิ่งต่าง ๆ มากมายเกี่ยวกับการเขียนโปรแกรมฟังก์ชั่นเมื่อเร็ว ๆ นี้และฉันสามารถเข้าใจได้เกือบทั้งหมด แต่สิ่งหนึ่งที่ฉันไม่สามารถห่อหัวของฉันคือการเข้ารหัสไร้สัญชาติ ดูเหมือนว่าสำหรับฉันแล้วการทำให้โปรแกรมง่ายขึ้นโดยการลบสถานะที่ไม่แน่นอนออกมานั้นก็เหมือนกับ "การทำให้ง่ายขึ้น" โดยการเอาแดชบอร์ดออก: ผลิตภัณฑ์ที่เสร็จแล้วอาจจะง่ายกว่า แต่โชคดีที่ทำให้มันโต้ตอบกับผู้ใช้ปลายทาง ทุกแอปพลิเคชันผู้ใช้ที่ฉันสามารถนึกถึงเกี่ยวข้องเป็นแนวคิดหลัก ถ้าคุณเขียนเอกสาร (หรือโพสต์ SO) สถานะจะเปลี่ยนไปด้วยอินพุตใหม่ทุกรายการ หรือถ้าคุณเล่นวิดีโอเกมมีตัวแปรสถานะเป็นจำนวนมากเริ่มต้นจากตำแหน่งของตัวละครทั้งหมดที่มีแนวโน้มที่จะเคลื่อนไหวอย่างต่อเนื่อง คุณจะทำอะไรที่มีประโยชน์โดยไม่ติดตามการเปลี่ยนแปลงค่าได้อย่างไร ทุกครั้งที่ฉันพบบางสิ่งที่กล่าวถึงปัญหานี้มันเขียนด้วยฟังก์ชั่นด้านเทคนิคจริงๆซึ่งถือว่าเป็นพื้นหลัง FP ที่หนักหน่วงที่ฉันไม่มี ไม่มีใครรู้วิธีที่จะอธิบายสิ่งนี้กับคนที่มีความเข้าใจที่ดีและมั่นคงของการเขียนโปรแกรมที่จำเป็น แต่ใครเป็น n00b ที่สมบูรณ์ในด้านการทำงาน? แก้ไข: กลุ่มคำตอบจนถึงตอนนี้ดูเหมือนจะพยายามโน้มน้าวใจฉันถึงข้อดีของค่าที่ไม่เปลี่ยนรูปแบบ ฉันได้ส่วนนั้น มันทำให้รู้สึกที่สมบูรณ์แบบ สิ่งที่ฉันไม่เข้าใจคือวิธีที่คุณสามารถติดตามค่าที่ต้องเปลี่ยนแปลงและเปลี่ยนแปลงอย่างต่อเนื่องโดยไม่มีตัวแปรที่ไม่แน่นอน