ลองทำแบบฝึกหัดสนุกๆ เพื่อทดสอบความเข้าใจของเรา แล้วเราจะใช้นิพจน์แลมบ์ดา
ตอนนี้ฉันต้องการให้คุณสร้างนิพจน์แลมบ์ดาที่จะยกกำลังสองรายการของเรา
สมมติว่าเรามีรายการของฉัน และนี่คือรายการของฉัน
เราจะมีห้า สี่ สาม
ตอนนี้ฉันต้องการให้คุณสร้างนิพจน์แลมบ์ดาหนึ่งบรรทัดที่จะพิมพ์ให้เรา
รายการกำลังสอง
ห้ายกพาร์ของสองจะเป็น 25
สี่ยกกำลังสองจะเป็น 16 และสามยกกำลังสองเป็นเก้า
ดังนั้นรายการที่มีค่าเหล่านั้นโดยใช้นิพจน์แลมบ์ดา
นั่นคือความท้าทายแรกของคุณคือการยกกำลังสอง
ความท้าทายต่อไป
และอันนี้ค่อนข้างยาก
เราจะทำการเรียงลำดับรายการ
ลองทำสี่เหลี่ยมตรงนี้ดู
และในรายการนี้ การเรียงลำดับ
ฉันมีรายการ
และรายการนี้
มันเป็นเรื่องยากอย่างหนึ่ง
เรามีรายการที่ทูเพิลของศูนย์ถึง
สมมุติว่าทูเพิลสำหรับสามคน
และทูเพิล สมมุติว่าเก้า เก้า และสุดท้ายทูเพิลที่เป็นลบสิบหนึ่ง
ตอนนี้ สิ่งที่ฉันต้องการให้คุณทำคือการจัดเรียง
นี้ขึ้นอยู่กับที่สอง
ค่า.
ตรวจสอบให้แน่ใจว่านี่คือเครื่องหมายจุลภาค
นั่นคือฉันต้องการให้เรียงลำดับนี้เพื่อให้ tuple นี้เป็นอันดับแรกเพราะลบหนึ่งมีค่าต่ำสุดแล้ว
tuple นี้เพราะสองเป็นค่าสูงสุดถัดไป
แล้วทูเพิลนี้
คุณจะทำอย่างนั้นได้อย่างไรโดยใช้นิพจน์แลมบ์ดา?
ตอนนี้มันเป็นเรื่องที่ยาก
ดังนั้นถ้าไม่เข้าใจก็อย่ากังวล
หยุดวิดีโอชั่วคราวที่นี่
ใช้เวลาของคุณ
ดูว่าคุณสามารถแก้ปัญหานี้ได้หรือไม่
มิฉะนั้นฉันจะไปหาคำตอบ
อันนี้น่าจะง่ายสำหรับคุณใช่ไหม?
เราก็แค่ทำฟังก์ชันแผนที่หรือรู้อะไรไหม?
สมมุติว่ารายการใหม่จะเท่ากับรายการที่เรากำลังจะทำแผนที่
และในที่นี้ ไม่มีอะไรที่เราไม่เคยเห็นมาก่อน
ฉันจะบอกว่าแลมบ์ดา
จำนวนจะเป็นจำนวนยกกำลังสอง
และรายการที่ผมจะมอบให้
จะเป็นรายการของฉัน
ถ้าฉันเรียกใช้สิ่งนี้
ไปเลย
ดีและง่าย
ดี.
ง่าย.
หนึ่งในสายการบิน.
ว่าแต่อันนี้ล่ะ?
อันนี้ค่อนข้างยากและคุณต้องคิดเกี่ยวกับมันจริงๆ
เราได้เรียนรู้ว่าเรามีวิธีการจัดเรียงจุดใช่ไหม
และประเภทที่จริงแล้ว
ลองดูว่าจะเกิดอะไรขึ้นถ้าฉันจัดเรียงแบบนี้
ถ้าฉันพิมพ์ dot sort และฉันคลิกเรียกใช้
ฉันไม่ได้รับเพราะมันแก้ไขรายการในสถานที่
ลองพิมพ์ a หลังจากที่เราจัดเรียงแล้ว
ถ้าฉันคลิกเรียกใช้
ไม่เป็นไร.
มัน.
ฉันหมายความว่า ดูเหมือนว่าจะเรียงลำดับกับผู้ชายคนแรก
ถ้าเราย้ายสิ่งนี้
และที่นี่อยู่ตรงกลาง
และคลิกเรียกใช้
ไม่เป็นไร.
ดูเหมือนว่ากำลังจัดเรียงสำหรับฉัน แต่จัดเรียงตามรายการแรกนี้
แต่ฉันต้องการรายการที่ 2 นี้หรือสิ่งที่เราเรียกว่าคีย์ที่สอง เป็นตัวประกอบการเรียงลำดับ
และถ้าคุณเห็นตรงนี้ หากเราจัดเรียง ฉันต้องให้กุญแจ
และเราต้องการให้กุญแจเป็น
ถึง.
แล้วเราจะทำได้อย่างไร?
เราสามารถทำสิ่งนี้ได้
เราสามารถพูดได้ว่าคีย์จะเท่ากับ
แต่ละคีย์ที่สองและเราสามารถใช้นิพจน์แลมบ์ดาที่นี่
เราสามารถพูดได้ว่าแลมบ์ดา
ดังนั้นพารามิเตอร์เริ่มต้น
จะเป็นแลมดาของ x แล้วบอกว่า x หนึ่ง
อืม.
ลองไปมากกว่านี้
ที่ฉันกำลังพูดคือ เฮ้ ฉันต้องการให้คุณเรียกใช้ฟังก์ชัน sort
และกุญแจสำคัญสำหรับฟังก์ชันดาบเมื่อฉันกำลังเรียงลำดับทุกอย่างคือ ฉันต้องการให้มันวนซ้ำในแต่ละรายการ
ที่ผมจะได้นั่นคือ X จะเท่ากับทูเพิลนี้
และฉันต้องการให้คุณใช้ค่าที่เรากำลังจะคืน ซึ่งก็คือค่าที่สอง
ดังนั้นกุญแจจะอยู่ที่ข้อที่สองเสมอ
ทีนี้ถ้าเรารันสิ่งนี้
ดูนั่นสิ
เราสามารถจัดเรียง
โดยข้อที่สอง
ตอนนี้ถ้าเขาไม่ได้รับสิ่งนี้ไม่ต้องกังวล
มันค่อนข้างยากและยากสำหรับคุณที่จะทำความคุ้นเคยกับไวยากรณ์หรือรู้ว่าการเรียงลำดับทำงานในลักษณะนี้
แต่เป้าหมายคือเพื่อแสดงให้คุณเห็นว่านี่เป็นเรื่องปกติที่คุณทำได้กับฟังก์ชันแลมบ์ดา
และวิธีตรวจสอบว่าคุณสามารถจัดเรียงด้วยปุ่มต่างๆ ได้
ตัวอย่างเช่น จะทำงานกับพจนานุกรมหรือรายการอื่นภายในรายการ
นี่เป็นวิธีทั่วไปในการปรับการจัดเรียงของคุณ และเป็นรูปแบบที่คุณต้องจำไว้
แต่มันแสดงให้คุณเห็นถึงพลังของแลมบ์ดา โดยที่เราไม่ต้องเขียนฟังก์ชันที่ซับซ้อนเหล่านี้
ถ้าเราต้องการฟังก์ชันแบบครั้งเดียวจริงๆ
และเป็นเพียงฟังก์ชันที่ส่งคืนสิ่งที่เรียบง่าย
แลมบ์ดาเป็นเครื่องมือที่ยอดเยี่ยมในการใช้งาน แต่ถ้าคุณไม่เข้าใจ อย่างที่บอก ก็ไม่ต้องกังวลไป
นี่เป็นหนึ่งในสิ่งที่คุณจะต้องจำไว้
ไปพักเถอะค่ะ แล้วเจอกันใหม่ตอนหน้าค่ะ
ลาก่อน.