ฉันรู้เล็กน้อยเกี่ยวกับ FORTH ดังนั้นฉันจะ จำกัด ตัวเองไว้ที่ มันเป็นภาษาระดับต่ำให้คุณเป็นโปรแกรมเมอร์เข้าถึงทรัพยากรฮาร์ดแวร์ทั้งหมด ดังนั้นคุณสามารถทำอะไรก็ได้ที่คุณชอบ
เห็นพ้องด้วย
เพื่อให้มีโปรแกรมที่คล้ายคลึงกัน (แก้ไข: ใช้เพื่อบอกโปรแกรมที่เกิดขึ้นจริงพร้อมกัน) คุณต้องมีหน่วยการทำงานอย่างน้อยสองหน่วย (CPU-s) มันจะค่อนข้างง่ายที่จะใช้คำใน FORTH โดยพูดว่า "ใช้คำนี้กับโปรเซสเซอร์ 2 โดยใช้อาร์กิวเมนต์สองตัวนี้" คำนี้จะจัดสรรทั้งสองสแต็คที่ต้องการบนตัวประมวลผล 2 และเริ่มต้นรันคำนั้น คุณจะต้อง จำกัด ตัวเองในแบบที่คุณสามารถใช้ในโปรแกรมนั้นได้
หากจำนวนของโปรแกรมที่เกิดขึ้นพร้อมกันนั้นใหญ่กว่าจำนวนของหน่วยการดำเนินการที่คุณจะไปสำหรับโปรแกรม "หลอกคู่" โดยทั่วไปมีสองวิธีในการทำเช่นนี้: coroutines หรือมัลติทาสกิ้งยึดเอาเสียก่อน ไม่ว่าในกรณีใดมันเป็นไปได้ (ไม่ใช่เรื่องง่าย แต่อธิบายได้ดีในวรรณกรรม) วิธีการบรรลุเป้าหมายนี้และ FORTH ช่วยให้คุณสามารถเข้าถึงทุกสิ่งระดับต่ำที่คุณต้องการ
การประเมินผลขี้เกียจ
แน่นอนคุณสามารถทำได้ใน FORTH เหมือนกับภาษาการเขียนโปรแกรมใด ๆ มันจะไม่หรูหราหรือ "บิวท์อิน" อย่างที่ Haskell พูด ฉันจะใช้ตัวอย่างไร้เดียงสามาก
ความคิดคือคุณกำหนด "ฟังก์ชั่น" (ใช้ที่นี่อย่างอิสระ) ที่ส่งคืนชุดของสิ่งต่าง ๆ ตัวอย่างหนึ่งคือฟังก์ชันที่ส่งคืนจำนวนเต็มทั้งหมด จากนั้นคุณจะดำเนินการกับชุดนี้และเมื่อคุณทำเสร็จแล้วให้ผล ตัวอย่างเช่นคุณอาจต้องการหาผลรวมจำนวนเต็มทั้งหมดจนกว่าผลรวมจะมีขนาดใหญ่กว่า 1,000 แล้วการประเมินที่ไม่ขี้เกียจในตอนแรกจะจัดสรรจำนวนเต็มทั้งหมดเป็นชุดซึ่งเป็นไปไม่ได้เนื่องจากไม่มีจำนวนเต็มจำนวนอนันต์ จากนั้นจะเริ่มทำงานกับชุดนี้ การนำไปใช้ที่ขี้เกียจจะมีวิธี "ให้ค่าถัดไปในชุด" แก่ฉัน การทำเช่นนี้ต้องการเพียงหนึ่งตัวแปรในฟังก์ชั่น "มูลค่าสุดท้ายให้"
Haskell ทำสิ่งนี้ด้วยวิธีนี้ แน่นอนมันจัดการกับสถานการณ์ที่ซับซ้อนมากขึ้น แต่ความคิดก็เหมือนกัน มันช่วยให้คุณประเมินผลในลักษณะที่ช่วยให้คุณเป็นโปรแกรมเมอร์ให้ความสนใจกับปัญหาไม่ใช่วิธีแก้ปัญหา