คำถามติดแท็ก programming-paradigms

2
ฟังก์ชั่นการตอบสนองการเขียนโปรแกรมและรูปแบบของนักแสดงสัมพันธ์กันอย่างไร
FRP เกี่ยวกับการสตรีมเหตุการณ์และพฤติกรรมผ่านฟังก์ชั่นแท้ รูปแบบของนักแสดง - อย่างน้อยที่สุดตามที่นำมาใช้ใน Akka - เกี่ยวกับการส่งข้อความที่ไม่เปลี่ยนรูป (ซึ่งถือได้ว่าเป็นเหตุการณ์ที่ไม่ต่อเนื่อง) ผ่านวัตถุที่อาจไม่บริสุทธิ์เรียกว่านักแสดง ดังนั้นบนพื้นผิวที่พวกเขาดูเหมือนเกี่ยวข้อง มีอะไรอีกบ้างที่เราสามารถพูดเกี่ยวกับความสัมพันธ์ของพวกเขา? นอกจากนี้สิ่งที่สามารถพูดเกี่ยวกับสิ่งที่พวกเขาอาจจะเหมาะสมกว่าสำหรับโดเมนแอปพลิเคชันที่แตกต่างกัน?

4
ทำไมเราถึงใช้โครงสร้างข้อมูลแบบต่อเนื่องในการโปรแกรมเชิงฟังก์ชัน?
ฟังก์ชั่นการเขียนโปรแกรมใช้งานโครงสร้างข้อมูลถาวรและวัตถุที่ไม่เปลี่ยนรูป คำถามของฉันคือเหตุใดจึงสำคัญที่ต้องมีโครงสร้างข้อมูลเช่นนี้ ฉันต้องการที่จะเข้าใจในระดับต่ำจะเกิดอะไรขึ้นถ้าโครงสร้างข้อมูลไม่คงที่? โปรแกรมจะทำงานผิดพลาดบ่อยขึ้นหรือไม่

7
แคลคูลัสแลมบ์ดาดูเหมือนไม่เป็นนามธรรม และฉันไม่เห็นจุดของมัน
คำถามพื้นฐาน: อะไรแคลคูลัสแลมบ์ดาทำเพื่อเราว่าเราไม่สามารถทำอะไรกับคุณสมบัติฟังก์ชั่นพื้นฐานและสัญกรณ์เรียนรู้โดยทั่วไปในพีชคณิตโรงเรียนมัธยม? ก่อนอื่นสิ่งที่เป็นนามธรรมหมายถึงอะไรในบริบทของแคลคูลัสแลมบ์ดา? ความเข้าใจของฉันเกี่ยวกับคำว่า abstract เป็นสิ่งที่หย่าร้างจากเครื่องจักรซึ่งเป็นแนวคิดสรุปของแนวคิด อย่างไรก็ตามแลมบ์ดาฟังก์ชั่นโดยทำไปกับชื่อฟังก์ชั่นป้องกันระดับที่เป็นนามธรรม ตัวอย่างเช่น: f(x) = x + 2 h(x, y) = x + 5 y แต่ถึงแม้จะไม่ได้กำหนดกลไกของฟังก์ชั่นเหล่านี้เราก็สามารถพูดคุยเกี่ยวกับองค์ประกอบของมันได้อย่างง่ายดาย ตัวอย่างเช่น: 1. h(x, y) . f(x) . f(x) . h(x, y) or 2. h . f . f . h เราสามารถรวมข้อโต้แย้งหากเราต้องการหรือเราสามารถสรุปได้อย่างสมบูรณ์เพื่อให้ภาพรวมของสิ่งที่เกิดขึ้น และเราสามารถลดพวกมันอย่างรวดเร็วให้เป็นฟังก์ชันเดียว ลองดูองค์ประกอบที่ 2 ฉันสามารถมีรายละเอียดของชั้นนักเรียนที่ฉันสามารถเขียนได้โดยขึ้นอยู่กับความสำคัญของฉัน: g = h . …

8
OOP แก้ปัญหาในทางปฏิบัติอย่างไร
ผมได้ศึกษาหนังสือ"C ++ Demystified" ตอนนี้ฉันเริ่มอ่าน"การเขียนโปรแกรมเชิงวัตถุใน Turbo C ++ รุ่นแรก (รุ่นที่ 1)"โดย Robert Lafore ฉันไม่มีความรู้เกี่ยวกับการเขียนโปรแกรมใด ๆ ซึ่งอยู่นอกเหนือหนังสือเหล่านี้ หนังสือเล่มนี้อาจล้าสมัยเพราะอายุ 20 ปี ฉันมีฉบับล่าสุดฉันใช้รุ่นเก่าเพราะฉันชอบส่วนใหญ่ฉันแค่ศึกษาแนวคิดพื้นฐานของ OOP ที่ใช้ใน C ++ ผ่านหนังสือรุ่นแรกของ Lafore หนังสือของ Lafore เน้นว่า "OOP" มีประโยชน์สำหรับโปรแกรมขนาดใหญ่และซับซ้อนเท่านั้น มีการกล่าวในหนังสือ OOP ทุกเล่ม (รวมถึงในหนังสือของ Lafore) ว่ากระบวนทัศน์กระบวนงานมีแนวโน้มที่จะเกิดข้อผิดพลาดเช่นข้อมูลทั่วโลกและมีความเสี่ยงจากการทำงานได้ง่าย ว่ากันว่าโปรแกรมเมอร์สามารถทำผิดพลาดอย่างสุจริตในภาษาขั้นตอนเช่นโดยการทำหน้าที่ที่เสียหายข้อมูลโดยไม่ตั้งใจ พูดอย่างสุจริตฉันกำลังโพสต์คำถามของฉันเพราะฉันไม่เข้าใจคำอธิบายที่ให้ไว้ในหนังสือเล่มนี้: การเขียนโปรแกรมเชิงวัตถุใน C ++ (รุ่นที่ 4)ฉันไม่เข้าใจข้อความเหล่านี้ที่เขียนไว้ในหนังสือของ Lafore: การเขียนโปรแกรมเชิงวัตถุได้รับการพัฒนาเนื่องจากข้อ จำกัด ถูกค้นพบในแนวทางก่อนหน้าของการเขียนโปรแกรม .... เนื่องจากโปรแกรมมีขนาดใหญ่ขึ้นและซับซ้อนยิ่งขึ้นแม้แต่วิธีการเขียนโปรแกรมที่มีโครงสร้างก็เริ่มแสดงสัญญาณของความเครียด ... …

2
มีกระบวนทัศน์สำหรับการเขียนฟังก์ชั่น“ การอัพเดทที่เพิ่มขึ้น” ในสไตล์ดาต้าโฟลที่แท้จริงหรือไม่?
ฉันไม่รู้คำศัพท์ที่ถูกต้องสำหรับการถามคำถามนี้ดังนั้นฉันจะอธิบายด้วยคำจำนวนมากแทนอดทนกับฉัน พื้นหลังดังนั้นเราจึงอยู่ในหน้าเดียวกัน: โปรแกรมมักจะมีแคช - การแลกเปลี่ยนเวลา / หน่วยความจำ ความผิดพลาดของโปรแกรมเมอร์ทั่วไปคือการลืมปรับปรุงค่าแคชหลังจากเปลี่ยนหนึ่งในแหล่งข้อมูลต้นกำเนิด / ทำนอง แต่กระบวนทัศน์การเขียนโปรแกรม dataflow หรือ FRP นั้นเป็นภูมิคุ้มกันต่อความผิดพลาดดังกล่าว หากเรามีฟังก์ชั่นบริสุทธิ์จำนวนมากและเชื่อมต่อเข้าด้วยกันในกราฟอ้างอิงโดยตรงจากนั้นโหนดสามารถมีค่าเอาต์พุตแคชและนำกลับมาใช้ใหม่ได้จนกว่าอินพุตใด ๆ ของฟังก์ชั่นจะเปลี่ยนไป สถาปัตยกรรมระบบนี้อธิบายไว้ในเอกสารการแคชในสภาพแวดล้อมที่ใช้ดาต้าโฟลว์และในภาษาที่จำเป็นต้องมีความคล้ายคลึงกับการบันทึกข้อมูลมากหรือน้อย ปัญหา : เมื่อหนึ่งในอินพุตของฟังก์ชั่นเปลี่ยนแปลงเรายังคงต้องใช้งานฟังก์ชั่นโดยรวมแล้วทิ้งเอาต์พุตแคชและคำนวณใหม่อีกครั้งตั้งแต่เริ่มต้น ในหลายกรณีดูเหมือนว่าจะสิ้นเปลืองสำหรับฉัน ลองพิจารณาตัวอย่างง่ายๆที่สร้างรายการ "5 อันดับแรก" ข้อมูลอินพุตเป็นรายการที่ไม่เรียงลำดับของอะไรก็ตาม มันถูกส่งผ่านเป็นอินพุตไปยังฟังก์ชันที่เอาต์พุตรายการที่เรียงลำดับ ซึ่งในทางกลับกันจะมีการป้อนฟังก์ชั่นที่ใช้ 5 รายการแรกเท่านั้น ใน pseudocode: input = [5, 20, 7, 2, 4, 9, 6, 13, 1, 45] intermediate = sort(input) final_output = …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.