มีบางสิ่งที่แตกต่างกันโดยพื้นฐานเกี่ยวกับภาษาที่อนุญาตให้ F # มีคอนโซลการโต้ตอบ แต่ทำให้ยากต่อการปรับใช้สำหรับ C # หรือไม่
ใช่.
F # เป็นผู้สืบทอดของภาษาโปรแกรม ML ซึ่งได้รับอิทธิพลอย่างมากจากภาษาเช่น Lisp และ Scheme ภาษาเหล่านั้นได้รับการออกแบบตั้งแต่วันแรกที่มีคุณสมบัติที่ดีสามประการ
ครั้งแรกที่ภาษาเหล่านั้นไม่ได้มีงบในแบบที่คุณคิดใน C # แต่เกือบทุกอย่างเป็นนิพจน์ที่มีค่าดังนั้นกลไกการประเมินและพิมพ์ค่าจึงสมเหตุสมผลในเกือบทุกสถานการณ์
ประการที่สองภาษาเหล่านั้นไม่สนับสนุนการเขียนโปรแกรมที่มีผลข้างเคียงดังนั้นคุณสามารถทำการประเมินผลได้โดยไม่ต้องกังวลว่าคุณจะสับสนกับสถานะโลก
ประการที่สามงานส่วนใหญ่ที่คุณทำในภาษาเหล่านั้นคือ“ ที่ระดับสูงสุด”; โดยทั่วไปจะไม่มี“ คลาส” หรือ“ เนมสเปซ” ล้อมรอบหรือบริบทอื่น ๆ
ในทางตรงกันข้าม C # เน้นการควบคุมการเขียนโปรแกรมด้วยข้อความที่สร้างผลข้างเคียงและข้อความเหล่านั้นมักจะอยู่ในหลาย ๆ คอนเทนเนอร์ที่ซ้อนกัน - เนมสเปซ, คลาส, วิธีการและอื่น ๆ
ดังนั้นเหล่านี้เป็นทุกสิ่งที่ทำให้มันยากสำหรับ C # จะมี REPL แต่ไม่แน่นอนเป็นไปไม่ได้ เราแค่ต้องคิดออกว่าซีแมนทิกส์นั้นมีไว้สำหรับข้อความและนิพจน์ที่ปรากฏนอกบริบทปกติและอะไรที่ความหมายของการกลายพันธุ์ที่เปลี่ยนการผูกชื่อเป็นต้น
เหตุใด F # จึงมีโหมดโต้ตอบ แต่ไม่ใช่ C #
เนื่องจากทีม F # ตัดสินใจว่าการวนซ้ำ REPL เป็นสถานการณ์ที่มีลำดับความสำคัญเดียวสำหรับพวกเขา ในอดีตทีม C # ยังไม่มี คุณลักษณะจะไม่ถูกนำไปใช้นอกเสียจากว่ามันจะเป็นคุณสมบัติที่มีความสำคัญสูงสุดที่เหมาะสมกับงบประมาณ จนถึงตอนนี้ C # REPL ยังไม่ได้อยู่ในอันดับต้น ๆ ของรายการของเรา
โครงการ Roslyn มี C # REPL (และในที่สุดจะมี VB REPL เช่นกัน แต่ยังไม่พร้อม) คุณสามารถดาวน์โหลดรุ่นตัวอย่างเพื่อดูว่าคุณชอบมันได้ที่
http://www.microsoft.com/en-us/download/details.aspx?id=27746