ทางเลือกอาร์กิวเมนต์ของ map()
การวนซ้ำยังช่วยให้ตอบคำถามได้ด้วย เช่น แต่ละ element ในชุดข้อมูล wesanderson มีความยาวเท่าใด ทำได้โดยส่งฟังก์ชันอย่าง length() เข้าไปใน map() ซึ่งใช้ไวยากรณ์ map(list, function) ได้เลยและก็ทำงานได้ดี อย่างไรก็ตาม เมื่อแบบฝึกหัดต่อ ๆ ไปมีความซับซ้อนมากขึ้น จะต้องเรียนรู้วิธีที่สองด้วย นั่นคือ:
map(list, ~function(.x))
วิธีที่สองนี้ให้ผลลัพธ์เหมือนกันกับ map(list, function) ทุกประการ การระบุว่า list ถูกใช้ในฟังก์ชันอย่างไรนั้น ให้ใช้อาร์กิวเมนต์ .x เพื่อบอกตำแหน่งที่ element ของ list จะถูกแทนค่าในฟังก์ชัน และเมื่อต้องการใช้ .x แบบนี้ ต้องเพิ่ม ~ ไว้หน้าฟังก์ชันในอาร์กิวเมนต์ที่สองของ map() ด้วย
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Foundations of Functional Programming with purrr
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Map over wesanderson to get the length of each element
map(___, ___)