มีบางอย่างที่ฉันไม่เข้าใจเกี่ยวกับฟังก์ชันที่ไม่ระบุชื่อโดยใช้สัญกรณ์สั้น ๆ # (.. )
ผลงานดังต่อไปนี้:
REPL> ((fn [s] s) "Eh")
"Eh"
แต่สิ่งนี้ไม่:
REPL> (#(%) "Eh")
ใช้งานได้:
REPL> (#(str %) "Eh")
"Eh"
สิ่งที่ฉันไม่เข้าใจคือทำไม(# (%) "เอ๊ะ")ไม่ทำงานและในขณะเดียวกันฉันก็ไม่จำเป็นต้องใช้str in ((fn [s] s) "เอ๊ะ")
ทั้งสองเป็นฟังก์ชันที่ไม่ระบุตัวตนและทั้งคู่ใช้พารามิเตอร์เดียวที่นี่ เหตุใดสัญกรณ์ชวเลขจึงจำเป็นต้องมีฟังก์ชันในขณะที่สัญกรณ์อื่นไม่มี