ถาม:เมื่อใดถ้าเคยจะมีประโยชน์กับการเสนอราคาที่คมชัดlambda
และถ้าเป็นไปไม่ได้เราจะไม่เสนอราคาที่คมชัดเมื่อlambda
ใด
คนใช้lambda
s ในสามวิธี:
- ธรรมดา:
(lambda (x) x)
- ที่ยกมา:
'(lambda (x) x)
- คมชัดที่ยกมา:
#'(lambda (x) x)
เธรด SO นี้กล่าวถึงสามประเภทเธรด SO นี้อธิบายถึงสาเหตุที่ไม่อ้างถึง (NB: not -quote quote ) lambda
s และเธรด SOนี้ยังกล่าวถึงความแตกต่างระหว่างการอ้างถึงและการอ้างอิงที่คมชัด
ตอนนี้โหนดแบบแมนนวลในฟังก์ชั่นที่ไม่ระบุชื่อและ docstring เพื่อlambda
ทราบว่าlambda
เป็นข้อความที่อ้างถึง:
การเรียกแบบฟอร์ม
(lambda ARGS DOCSTRING INTERACTIVE BODY)
เป็นการอ้างตนเอง ผลของการประเมินแลมบ์ดาแสดงออกคือการแสดงออกของตัวเอง แลมบ์ดานิพจน์นั้นอาจถูกมองว่าเป็นฟังก์ชัน ...
ดังนั้นจึงปรากฏว่า(lambda (x) x)
และ#'(lambda (x) x)
เทียบเท่า แต่'(lambda (x) x)
ไม่ใช่ (ที่สำคัญที่สุดคือเมื่อรวบรวมไบต์)
ดูเหมือนว่าจะไม่ค่อยต้องการอ้างถึงlambda
แต่ก็ไม่ชัดเจนสำหรับฉันเมื่อใดก็ตามที่เราควรหรือไม่ควรจะพูดคมชัด:
- การอ้างความคมชัดเป็น
lambda
เพียงตัวเลือกโวหารหรือมีสถานการณ์ที่การอ้างอิงที่คมชัดนั้นมีประโยชน์จริงหรือไม่? - มีสถานการณ์ใดบ้างที่เราจะต้องไม่อ้างคำพูดที่แหลมคมก
lambda
. นั่นคือเมื่อทำเช่นนั้นจะเปลี่ยนความหมายของรหัสหรือไม่?