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

1
Perl 6 ลดฟังก์ชั่นและ metaoperator ลดให้ผลลัพธ์ที่แตกต่าง
my @s=<1 2 3 2 3 4>; say reduce {$^a < $^b}, @s; say [<] @s; # -------- # True # False คำถามของฉันคือสองเท่า: ประการแรกทำไม metaoperator ลดประมวลผล<ผู้ประกอบการแตกต่างกันอย่างไร ดูเหมือนว่า metaop ที่ลดลงนั้นประมาณว่าใช้ตัวแปรซึ่งในการเปลี่ยนแปลงครั้งแรกของจริงเป็นเท็จจะคงไว้ซึ่งการเปลี่ยนแปลงนั้นเพราะ: say [\<] @s; # ---------- # (True True True False False False) ประการที่สองฉันต้องการใช้สิ่งนี้ภายในฟังก์ชั่นการลดเช่นแนะนำรหัสบางอย่างภายในวงเล็บปีกกาของฟังก์ชั่นการลดขนาดเพื่อให้ผลลัพธ์เช่นเดียวกับตัวดำเนินการลดเมตาดาต้า ฉันจะทำมันได้อย่างไร ขอบคุณ.
12 raku  reduction 

1
Haskells Weak Head ฟอร์มปกติ
ฉันสะดุดสิ่งที่น่ารำคาญบางอย่าง ฉันรู้ว่า Haskell ทำงานได้กับรูปแบบปกติของผู้อ่อนแอ (WHNF) และฉันรู้ว่านี่คืออะไร พิมพ์รหัสต่อไปนี้เป็น ghci (ฉันใช้คำสั่ง: sprint ซึ่งลดการแสดงออกของ WHNF ให้เป็นความรู้ของฉัน): let intlist = [[1,2],[2,3]] :sprint intlist ให้intlist = _ความรู้สึกแบบนี้กับฉันโดยสิ้นเชิง let stringlist = ["hi","there"] :sprint stringlist ให้stringlist = [_,_] สิ่งนี้ทำให้ฉันสับสนแล้ว แต่แล้ว: let charlist = [['h','i'], ['t','h','e','r','e']] :sprint charlist ให้อย่างแปลกใจ charlist = ["hi","there"] เท่าที่ผมเข้าใจ Haskell สตริงมีอะไรอย่างอื่นมากกว่ารายชื่อของตัวอักษรซึ่งดูเหมือนว่าจะได้รับการยืนยันโดยการตรวจสอบชนิดและ"hi" :: [Char]['h','i'] :: …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.