ฟังก์ชันลำดับสูงกว่าสำหรับการใช้งานในรายการหรืออาร์เรย์ได้ถูกนำมาใช้ซ้ำแล้วซ้ำอีก ฟังก์ชั่นแผนที่ , พับ [ L | r ] และตัวกรองถูกพบร่วมกันในภาษาการเขียนโปรแกรมหลายภาษาเช่น Scheme, ML และ Python ที่ดูเหมือนจะไม่มีบรรพบุรุษเดียวกัน ฉันจะใช้ชื่อทั้งสามนี้เพื่อรักษาคำถาม
เพื่อแสดงว่าชื่อไม่เป็นสากลต่อไปนี้เป็นตัวอย่างของชื่อฟังก์ชันการทำงานที่เทียบเท่าในภาษาอื่น C ++ มีการแปลงแทนmapและremove_ifแทนที่จะเป็นfilter (กลับความหมายของเพรดิเคต) ชัดมีmapcarแทนแผนที่ , ลบถ้าไม่แทนการกรองและลดแทนการพับ (บางทันสมัยเสียงกระเพื่อมสายพันธุ์มีแผนที่แต่ปรากฏนี้จะเป็นรูปแบบที่ได้มา .) C # ใช้เลือกแทนการแผนที่และไหนแทนกรอง ชื่อของ C # มาจาก SQL ผ่านLINQและแม้ว่าจะมีการเปลี่ยนแปลงชื่อการทำงานของพวกเขานั้นได้รับอิทธิพลจาก Haskell ซึ่งตัวมันเองได้รับอิทธิพลมาจาก ML
ชื่อแผนที่ , พับและตัวกรองเป็นที่แพร่หลาย แต่ไม่เป็นสากล นี่แสดงให้เห็นว่าพวกเขายืมมาจากแหล่งที่มีอิทธิพลไปสู่ภาษาร่วมสมัยอื่น ๆ ชื่อฟังก์ชันเหล่านี้มาจากไหน
mapcar
เป็นแผนที่บนรถ (แทนที่จะเป็น cdr)
filter
ทำอย่างนั้น - มันกรองข้อมูล ดูเหมือนจะค่อนข้างชัดเจน
map
จะมาจากทฤษฎีเซตคณิตศาสตร์ซึ่งอธิบายการแปลงชุดเป็น "การแมป" จากโดเมนอินพุตไปยังช่วงเอาต์พุต