คำถามติดแท็ก pointfree

4
Fibonacci-function นี้จำได้อย่างไร?
fibonacci-function นี้บันทึกโดยกลไกใด? fib = (map fib' [0..] !!) where fib' 1 = 1 fib' 2 = 1 fib' n = fib (n-2) + fib (n-1) และในบันทึกที่เกี่ยวข้องเหตุใดเวอร์ชันนี้จึงไม่เป็นเช่นนั้น fib n = (map fib' [0..] !! n) where fib' 1 = 1 fib' 2 = 1 fib' n = fib (n-2) + fib …

6
สไตล์“ point free” (ใน Functional Programming) คืออะไร?
วลีที่ฉันสังเกตเห็นเมื่อเร็ว ๆ นี้คือแนวคิดของสไตล์ "point free" ... อย่างแรกมีคำถามนี้และคำถามนี้ด้วย จากนั้นฉันก็ค้นพบที่นี่พวกเขากล่าวถึง "อีกหัวข้อหนึ่งที่อาจมีค่าควรพูดคุยกันคือผู้เขียนไม่ชอบสไตล์ไร้จุดมุ่งหมาย" สไตล์ "point free" คืออะไร? ใครช่วยให้คำอธิบายสั้น ๆ มันเกี่ยวข้องกับการแกงแบบ "อัตโนมัติ" หรือไม่? เพื่อให้ทราบถึงระดับของฉัน - ฉันได้สอน Scheme ด้วยตัวเองและได้เขียนล่าม Scheme แบบง่ายๆ ... ฉันเข้าใจว่าการแกง "โดยนัย" คืออะไร แต่ฉันไม่รู้จัก Haskell หรือ ML เลย

2
การรวมส่วนของ Haskell Code เพื่อให้ได้ภาพที่ใหญ่ขึ้น
นี่คือรหัสที่ฉันเข้ามาบางที่ แต่ต้องการทราบวิธีการทำงาน: findIndices :: (a -> Bool) -> [a] -> [Int] findIndices _ [] = [] findIndices pred xs = map fst (filter (pred . snd) (zip [0..] xs)) ผลลัพธ์: findIndices (== 0) [1,2,0,3,0] == [2,4]โดยที่ pred คือ (== 0) & xs คือ [1,2,0,3,0] ฉันจะแสดงความเข้าใจของฉัน: (zip [0..] xs) บรรทัดข้างต้นทำอะไรได้บ้างนำดัชนีไปสู่ทุกสิ่งในรายการ สำหรับอินพุตที่ระบุข้างต้นมันจะมีลักษณะดังนี้: …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.