ฉันได้รับคำถามต่อไปนี้จากการทดสอบ:
เขียนฟังก์ชั่นที่มีประเภทดังต่อไปนี้
fและไม่ควรผูกมัดในความหมายใด ๆ ยิ่งรหัสสั้นยิ่งดีa -> b -> (a -> b)ab
f a b = \x -> snd ([a,x],b)ฉันมาด้วย คุณสามารถหาบางอย่างที่สวยกว่า?
ปัจจุบันผู้ชนะคือ: f _=(.f).const
f _ b _ = bแต่เนื่องจากวิธีการแก้ปัญหาในคำถามฉันสงสัยว่าประเภททั่วไปไม่ได้รับอนุญาต
f = idล่ะ
f = fเป็นวิธีแก้ปัญหาดังนั้นฉันเดาว่าเงื่อนไขในประเภทนั้นสำคัญมาก!
f = const constถ้าประเภททั่วไปมากขึ้นจะได้รับอนุญาต: