ฉันได้เขียนแอพพลิเคชั่นเพื่อสร้างความสมดุลตารางการผลิตไฟฟ้าของประเทศสำหรับพอร์ตโฟลิโอของโรงไฟฟ้าไปยังตำแหน่งการค้าสำหรับ บริษัท พลังงาน ไคลเอ็นต์และส่วนประกอบเซิร์ฟเวอร์อยู่ใน C # แต่เอ็นจิ้นการคำนวณถูกเขียนใน F #
การใช้ F # เพื่อจัดการกับความซับซ้อนที่เป็นหัวใจของแอปพลิเคชันนี้แสดงให้เห็นถึงจุดที่ชัดเจนสำหรับภาษาภายในซอฟต์แวร์ขององค์กรซึ่งเป็นการวิเคราะห์เชิงอัลกอริทึมที่ซับซ้อนของชุดข้อมูลขนาดใหญ่ ประสบการณ์ของฉันเป็นสิ่งที่ดีมาก โดยเฉพาะอย่างยิ่ง:
หน่วยวัดอุตสาหกรรมที่ฉันทำงานอยู่จะถูกทิ้งไว้กับหน่วย สมการที่ฉันนำมาใช้ (มักจะเป็นลักษณะทางเรขาคณิต) จัดการกับหน่วยของเวลาพลังงานและพลังงาน การมีระบบประเภทตรวจสอบความถูกต้องของหน่วยของอินพุตและเอาต์พุตของฟังก์ชั่นเป็นตัวช่วยประหยัดเวลาได้อย่างมากทั้งในแง่ของการทดสอบและการอ่าน / ทำความเข้าใจโค้ด มันกำจัดข้อผิดพลาดทั้งชั้นที่ระบบก่อนหน้านี้มีแนวโน้มที่จะ
การเขียนโปรแกรม Exploratory การทำงานกับไฟล์สคริปต์และ REPL (F # Interactive) ทำให้ฉันสามารถสำรวจพื้นที่โซลูชันได้อย่างมีประสิทธิภาพมากขึ้นก่อนที่จะยอมรับการนำไปใช้มากกว่าลูป Edit / compile / run / test แบบดั้งเดิม มันเป็นวิธีที่เป็นธรรมชาติมากสำหรับโปรแกรมเมอร์ที่จะสร้างความเข้าใจในปัญหาและความตึงเครียดในการออกแบบ
การทดสอบหน่วยรหัสที่เขียนโดยใช้ฟังก์ชั่นที่ไม่มีผลข้างเคียงและโครงสร้างข้อมูลที่เปลี่ยนแปลงไม่ได้คือความสนุกในการทดสอบ ไม่มีการโต้ตอบขึ้นอยู่กับเวลาที่ซับซ้อนในการไขสิ่งต่าง ๆ หรือชุดการอ้างอิงขนาดใหญ่ที่จะเยาะเย้ย
การทำงานร่วมกันฉันกำหนดส่วนต่อประสานกับเครื่องมือคำนวณใน C # และนำการคำนวณไปใช้ใน F # เอ็นจินการคำนวณสามารถถูกฉีดเข้าไปในโมดูล C # ใด ๆ ที่จำเป็นต้องใช้โดยไม่ต้องกังวลเกี่ยวกับการทำงานร่วมกัน ไม่มีรอยต่อ โปรแกรมเมอร์ C # ไม่จำเป็นต้องรู้
การลดรหัสข้อมูลส่วนใหญ่ที่ป้อนเข้าสู่เครื่องมือคำนวณนั้นอยู่ในรูปของเวกเตอร์และเมทริกซ์ ฟังก์ชั่นการสั่งซื้อที่สูงขึ้นกินอาหารเช้าเหล่านี้ด้วยความยุ่งยากน้อยที่สุด สวย.
ไม่มีข้อบกพร่องการเขียนโปรแกรมฟังก์ชั่นสามารถรู้สึกแปลก ฉันสามารถทำงานกับอัลกอริทึมพยายามอย่างหนักเพื่อให้โค้ดผ่านตัวตรวจสอบชนิด แต่เมื่อตัวตรวจสอบชนิดพอใจแล้วก็ใช้งานได้ มันเกือบไบนารีมันจะไม่รวบรวมหรือถูกต้อง ข้อผิดพลาดเล็ก ๆ น้อย ๆ ของขอบถูกย่อให้เล็กลง, การเรียกซ้ำและฟังก์ชันการสั่งซื้อที่สูงขึ้นลบรหัสการเก็บหนังสือจำนวนมากที่แนะนำข้อผิดพลาดของ edge edge
Parallelismความบริสุทธิ์ของการใช้งานที่เกิดขึ้นนั้นทำให้การใช้ประโยชน์จากความเท่าเทียมในการประมวลผลของเวกเตอร์ของข้อมูลนั้นมีความสมบูรณ์ บางทีนี่อาจเป็นที่ที่ฉันจะไปต่อไปในตอนนี้ที่. NET 4 กำลังจะเปิดตัว