ใช้ GHC 7.10
รุ่นแรกของ GHC ที่มีสิ่งนี้ได้รับการปล่อยตัวเมื่อวันที่27 มีนาคม 2015
เป็นรุ่นล่าสุดและโหมโรงได้รับการเพิ่มใหม่บางอย่างที่มีประโยชน์สำหรับการเล่นกอล์ฟ:
(<$>)
และ(<*>)
ผู้ประกอบการ
ผู้ประกอบการที่มีประโยชน์เหล่านี้มาจากData.Applicative
ทำใน! <$>
เป็นเพียงfmap
เพื่อให้คุณสามารถแทนที่map f x
และfmap f x
ด้วยf<$>x
ทุกที่และชนะกลับไบต์ นอกจากนี้ยัง<*>
มีประโยชน์ในApplicative
กรณีสำหรับรายการ:
Prelude> (,)<$>[1..2]<*>"abcd"
[(1,'a'),(1,'b'),(1,'c'),(1,'d'),(2,'a'),(2,'b'),(2,'c'),(2,'d')]
(<$)
ผู้ประกอบการ
x<$a
เทียบเท่ากับfmap (const x) a
; x
คือแทนที่ทุกองค์ประกอบในภาชนะโดย
นี้มักจะเป็นทางเลือกที่ดีที่จะreplicate
: สั้นกว่า4<$[1..n]
replicate n 4
ข้อเสนอแบบพับได้ / ผ่านได้
ฟังก์ชั่นต่อไปนี้ถูกยกขึ้นจากการทำงานกับรายการ[a]
เป็นFoldable
ประเภททั่วไปt a
:
fold*, null, length, elem, maximum, minimum, sum, product
and, or, any, all, concat, concatMap
ซึ่งหมายความว่าตอนนี้พวกเขายังทำงานMaybe a
ที่พวกเขาทำงานเหมือน "รายการที่มีองค์ประกอบมากที่สุด" ยกตัวอย่างเช่นหรือnull Nothing == True
sum (Just 3) == 3
ในทำนองเดียวกันlength
ผลตอบแทน 0 สำหรับNothing
และ 1 สำหรับJust
ค่า แทนการเขียนคุณสามารถเขียนx==Just y
elem y x
คุณสามารถนำไปใช้กับสิ่งอันดับ (tuples) ซึ่งทำงานเหมือนกับว่าคุณโทรมา\(a, b) -> [b]
ก่อน มันเกือบจะไร้ประโยชน์อย่างสมบูรณ์ แต่or :: (a, Bool) -> Bool
เป็นหนึ่งในตัวละครที่สั้นกว่าsnd
และสั้นกว่าelem b
(==b).snd
ฟังก์ชั่น Monoid mempty
และmappend
ไม่บ่อยนักที่ช่วยชีวิต แต่ถ้าคุณสามารถอนุมานประเภทmempty
เป็นหนึ่งไบต์สั้นกว่าNothing
ดังนั้นจึงมี