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

ฟังก์ชั่นการเขียนโปรแกรมเป็นกระบวนทัศน์การเขียนโปรแกรมตามการสร้าง abstractions โดยใช้ฟังก์ชั่นหลีกเลี่ยงผลข้างเคียงและการเปลี่ยนแปลงของรัฐ การเขียนโปรแกรมใช้งานได้จริงนั้นปลอดภัยต่อเธรด

10
Haskell ใช้สำหรับอะไรในโลกแห่งความเป็นจริง? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา มีโฆษณาชวนเชื่อมากมายรอบ ๆ Haskell อย่างไรก็ตามมันยากที่จะรับข้อมูลเกี่ยวกับวิธีการใช้งานในแอปพลิเคชันในโลกแห่งความเป็นจริง โครงการ / ประเพณีที่ได้รับความนิยมมากที่สุดของ Haskell คืออะไรและทำไมมันถึงเก่งในการแก้ปัญหาเหล่านี้

16
อะไรคือความแตกต่างระหว่างคลาสเคสของสกาล่ากับคลาส?
ฉันค้นหาใน Google เพื่อค้นหาความแตกต่างระหว่างที่และcase class classทุกคนกล่าวว่าเมื่อคุณต้องการจับคู่รูปแบบในคลาสให้ใช้คลาสเคส มิฉะนั้นใช้คลาสและยังกล่าวถึงสิทธิพิเศษบางอย่างเช่นเท่ากับและรหัสแฮชแทนที่ แต่เหตุผลเหล่านี้เป็นเหตุผลเดียวที่ควรใช้คลาสเคสแทนคลาส? ฉันเดาว่าควรมีเหตุผลที่สำคัญมากสำหรับคุณลักษณะนี้ใน Scala คำอธิบายหรือมีแหล่งข้อมูลเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับคลาสเคสสคาลาคืออะไร?


15
ฟังก์ชั่นการเขียนโปรแกรม GUI สามารถทำได้หรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันเพิ่งเจอข้อผิดพลาด FP (พยายามเรียนรู้ Haskell) และฉันก็ประทับใจกับสิ่งที่ฉันเห็นมามาก (ฟังก์ชั่นชั้นหนึ่งการประเมินที่ขี้เกียจและสารพัดอื่น ๆ ) ฉันยังไม่มีความเชี่ยวชาญ แต่ฉันได้เริ่มเข้าใจแล้วว่าเหตุผล "ตามหน้าที่" ง่ายกว่าเหตุผลสำหรับอัลกอริธึมพื้นฐาน (และฉันมีปัญหาในการกลับไปที่ที่ฉันต้องทำ) พื้นที่หนึ่งที่ FP ในปัจจุบันดูเหมือนจะค่อนข้างแบนอย่างไรก็ตามคือการเขียนโปรแกรม GUI วิธี Haskell ดูเหมือนว่าจะห่อชุดเครื่องมือ GUI ที่จำเป็น (เช่น GTK + หรือ wxWidgets) และใช้บล็อก "do" เพื่อจำลองสไตล์ที่จำเป็น ฉันไม่ได้ใช้ F # แต่ความเข้าใจของฉันคือมันใช้ OOP กับ. NET class เห็นได้ชัดว่ามีเหตุผลที่ดีสำหรับเรื่องนี้ - การเขียนโปรแกรม GUI ปัจจุบันเป็นเรื่องของ …

5
ประสิทธิภาพของการเขียนโปรแกรมการทำงานอย่างหมดจด
ไม่มีใครรู้ว่าสิ่งที่เลวร้ายที่สุดของ asymptotic ที่ช้าที่สุดที่สามารถเกิดขึ้นได้เมื่อการเขียนโปรแกรมทำงานได้อย่างหมดจดเมื่อเทียบกับความจำเป็น (เช่นการอนุญาตให้มีผลข้างเคียง)? การชี้แจงจากข้อคิดเห็นโดย itowlson : มีปัญหาใดบ้างที่อัลกอริธึมที่ไม่ทำลายที่รู้จักกันเป็นอย่างดีนั้นแย่กว่าอัลกอริธึมการทำลายที่รู้จักกันดีที่สุดและถ้าเป็นเช่นนั้นเท่าไหร่?

18
Y-combinator คืออะไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา Y-combinator เป็นแนวคิดวิทยาการคอมพิวเตอร์จาก "หน้าที่" ของสิ่งต่าง ๆ โปรแกรมเมอร์ส่วนใหญ่ไม่ค่อยรู้เรื่อง combinators เลยแม้แต่น้อยหากพวกเขาเคยได้ยินเกี่ยวกับพวกเขา Y-combinator คืออะไร ผู้ประสานงานทำงานอย่างไร สิ่งที่ดีสำหรับ มันมีประโยชน์ในภาษาเชิงโพรซีเดอร์หรือไม่?

4
“ coalgebra” หมายถึงอะไรในบริบทของการเขียนโปรแกรม
ฉันเคยได้ยินคำว่า "coalgebras" หลายครั้งในการเขียนโปรแกรมการทำงานและวงกลม PLT โดยเฉพาะอย่างยิ่งเมื่อการสนทนาเกี่ยวกับวัตถุ, comonads, เลนส์และอื่น ๆ Googling คำนี้ให้หน้าซึ่งให้คำอธิบายทางคณิตศาสตร์ของโครงสร้างเหล่านี้ซึ่งฉันเข้าใจยากมาก ใครช่วยอธิบายหน่อยได้ว่า coalgebras มีความหมายอย่างไรในบริบทของการเขียนโปรแกรมความสำคัญของพวกมันคืออะไรและพวกมันเกี่ยวข้องกับวัตถุและ comonads อย่างไร

30
ทำไมต้องใช้ภาษา [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันเห็นการสนทนาเกี่ยวกับภาษาและสิ่งต่าง ๆ มากมายที่นี่ ทำไมคุณต้องใช้หนึ่งในภาษา "ดั้งเดิม" พวกเขาทำอะไรได้ดีกว่า สิ่งที่แย่กว่านั้นคืออะไร? แอปพลิเคชั่นการเขียนโปรแกรมที่ใช้งานได้ดีที่สุดคืออะไร

9
ทำไม Python จึงไม่ดีสำหรับการเขียนโปรแกรมที่ใช้งานได้? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันคิดเสมอว่าการเขียนโปรแกรมใช้งานสามารถทำได้ใน Python ดังนั้นฉันประหลาดใจที่ Python ไม่ได้กล่าวถึงมากในคำถามนี้และเมื่อมีการพูดถึงมันมักจะไม่เป็นบวกมาก อย่างไรก็ตามมีเหตุผลไม่มากนักสำหรับเรื่องนี้ (ขาดการจับคู่รูปแบบและประเภทข้อมูลเกี่ยวกับพีชคณิต) ดังนั้นคำถามของฉันคือ: ทำไม Python จึงไม่ดีสำหรับการเขียนโปรแกรมเชิงฟังก์ชัน มีเหตุผลมากกว่าการขาดการจับคู่รูปแบบและประเภทข้อมูลพีชคณิตหรือไม่ หรือแนวคิดเหล่านี้มีความสำคัญต่อการเขียนโปรแกรมฟังก์ชั่นที่ภาษาที่ไม่สนับสนุนพวกเขาสามารถจัดเป็นภาษาการเขียนโปรแกรมการทำงานอัตราที่สองเท่านั้น? (โปรดทราบว่าประสบการณ์ของฉันกับการเขียนโปรแกรมใช้งานได้ค่อนข้าง จำกัด )

6
วิธีใช้ตัวกรองแผนที่และลดใน Python 3
filter, mapและreduceทำงานอย่างสมบูรณ์ใน Python 2 นี่คือตัวอย่าง: >>> def f(x): return x % 2 != 0 and x % 3 != 0 >>> filter(f, range(2, 25)) [5, 7, 11, 13, 17, 19, 23] >>> def cube(x): return x*x*x >>> map(cube, range(1, 11)) [1, 8, 27, 64, 125, 216, 343, 512, 729, 1000] …


3
ดัชนีภายในแผนที่ () ฟังก์ชั่น
ฉันไม่มีตัวเลือกวิธีรับหมายเลขดัชนีภายในmapฟังก์ชันที่ใช้ListจากImmutable.js: var list2 = list1.map(mapper => { a: mapper.a, b: mapper.index??? }).toList(); เอกสารที่แสดงให้เห็นว่าผลตอบแทนmap() Iterable<number, M>มีวิธีที่สง่างามกับสิ่งที่ฉันต้องการหรือไม่?

7
การใช้พีชคณิตประเภทข้อมูลเชิงพีชคณิตในทางที่ผิด - ทำไมจึงใช้งานได้?
นิพจน์ 'พีชคณิต' สำหรับชนิดข้อมูลเชิงพีชคณิตนั้นมีความหมายมากสำหรับคนที่มีพื้นฐานด้านคณิตศาสตร์ ให้ฉันพยายามอธิบายสิ่งที่ฉันหมายถึง มีการกำหนดประเภทพื้นฐาน สินค้า • สหภาพ + ซิงเกิล X หน่วย 1 และการใช้ชวเลขX²สำหรับX•Xและ2XสำหรับX+Xฯลฯ เราก็สามารถกำหนดนิพจน์พีชคณิตสำหรับเช่นรายการเชื่อมโยง data List a = Nil | Cons a (List a) ↔ L = 1 + X • L และต้นไม้ไบนารี: data Tree a = Nil | Branch a (Tree a) (Tree a) ↔ T = 1 …

13
ความโปร่งใสอ้างอิงคืออะไร?
คำว่าการอ้างอิงความโปร่งใสหมายถึงอะไร? ฉันได้ยินว่ามันอธิบายว่า "หมายความว่าคุณสามารถแทนที่เท่ากับด้วย" ได้ แต่นี่ดูเหมือนจะเป็นคำอธิบายที่ไม่เพียงพอ

11
รูปแบบการใช้งานของ Java 8's Optional.ifPresent และ if-not-Present?
ใน Java 8 ฉันต้องการทำบางสิ่งกับOptionalวัตถุถ้ามีอยู่และทำสิ่งอื่นหากไม่มีอยู่ if (opt.isPresent()) { System.out.println("found"); } else { System.out.println("Not found"); } แม้ว่านี่จะไม่ใช่ 'สไตล์การทำงาน' ก็ตาม OptionalมีifPresent()วิธีการ แต่ฉันไม่สามารถเชื่อมโยงorElse()วิธีการใด ๆ ดังนั้นฉันไม่สามารถเขียน: opt.ifPresent( x -> System.out.println("found " + x)) .orElse( System.out.println("NOT FOUND")); ในการตอบกลับถึง @assylias ฉันไม่คิดว่าจะOptional.map()ทำงานได้ในกรณีต่อไปนี้: opt.map( o -> { System.out.println("while opt is present..."); o.setProperty(xxx); dao.update(o); return null; }).orElseGet( () -> { …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.