คำตอบ: a.τwτ
แต่คุณต้องติดตั้งPyperก่อน ...
Pyper intro:คุณรู้จัก Lispy car
และcdr
ส่งคืน "first" และ "rest" ของอาร์เรย์หรือไม่? สำหรับความต้องการเช่นเดียวกับคุณฉันได้เพิ่มกลไก Lispy นี้ มันถูกเรียกว่าpyper
และมันช่วยให้คุณสามารถเข้าถึง 2nd, พักจาก 2nd, 3rd, พักผ่อนจาก 3d และสุดท้ายได้ทุกอย่างยกเว้นที่ผ่านมาเป็นต้นซึ่งไม่มากนักที่จะเขียนเกี่ยวกับมันcaar
, cadr
, cdadar
และอื่น ๆ ที่รู้จักจากเสียงกระเพื่อม:
# First, gem install pyper
require 'pyper'
include Pyper
a = %w/lorem ipsum dolor sit amet/
# To avoid confusion with other methods, and also because it resembles a rain gutter,
# Greek letter τ is used to delimit Pyper methods:
a.τaτ #=> "lorem"
a.τdτ #=> ["ipsum", "dolor", "sit", "amet"]
a.τbτ #=> "ipsum"
a.τeτ #=> ["dolor", "sit", "amet"]
a.τcτ #=> "dolor" (3rd)
a.τzτ #=> "amet" (last)
a.τyτ #=> "sit" (2nd from the end)
a.τxτ #=> "dolor" (3rd from the end)
และในที่สุดคำตอบสำหรับคำถามของคุณ:
a.τwτ #=> ["lorem", "ipsum", "dolor", "sit"] (all except last)
มีมากขึ้น:
a.τuτ #=> ["lorem", "ipsum", "dolor"] (all except last 2)
a.τ1τ #=> ["lorem", "ipsum"] (first 2)
a.τ8τ #=> (last 2)
a.τ7τ #=> (last 3)
องค์ประกอบ:
a.τwydτ #=> "olor" (all except 1st letter of the last word of all-except-last array)
นอกจากนี้ยังมีตัวละครมากขึ้นกว่าเพียงแค่คำสั่งa..f
, u..z
และ0..9
สะดุดตาที่สุดm
หมายถึงแผนที่:
a.τwmbτ #=> ["o", "p", "o", "i"] (second letters of all-except-last array)
แต่ตัวละครคำสั่งอื่น ๆ นั้นร้อนแรงและไม่ง่ายต่อการใช้งานในตอนนี้