ท้าทาย
เขียนฟังก์ชันที่รับอาร์กิวเมนต์ซึ่งเป็นคำกริยาและคืนค่าอดีตกาลของคำกริยา (สมมติว่าคำกริยาเป็นปกติ)
อดีตกาล
หมายเหตุ: พิจารณา y เป็นพยัญชนะหรือสระ
โดยปกติเพียงเพิ่มedหลังจากสิ้นสุดคำกริยาทำให้กาลที่ผ่านมาของคำกริยา
เช่นjump→ jumped, ask→asked
อย่างไรก็ตามมีกฎอื่น ๆ
ถ้าตัวอักษรตัวสุดท้ายของคำกริยาให้เป็นเพียงแค่เพิ่ม
edเช่น
love→loved,move→movedถ้าเป็นคำกริยาจะจบลงด้วยการ + พยัญชนะ
yแล้วเปลี่ยนyไปและเพิ่มiedเช่น
study→studied,cry→criedแต่ถ้าเป็นคำกริยาจะจบลงด้วยการสระ + แล้วเพียงแค่เพิ่ม
yedเช่น
play→played,stay→stayedหากคำกริยาลงท้ายด้วยสระและพยัญชนะให้เขียนพยัญชนะอีกครั้งแล้วเพิ่ม
edหากคำกริยาจะจบลงด้วยการสระและพยัญชนะแล้วเขียนพยัญชนะอีกครั้งหนึ่งและเพิ่มเช่น
stop→stopped,plan→plannedแต่ถ้าเป็นคำกริยาจะจบลงด้วยการสระหลาย + พยัญชนะหรือสระเดี่ยว +
edหลายพยัญชนะแล้วเพียงแค่เพิ่มเช่น
look→looked,jump→jumped
มีกฎมากกว่า แต่ให้ใส่ใจกฎข้างต้นเท่านั้น ตัวอย่างเช่นตามกฎข้างต้นvisit→visitted →
ผู้ชนะ
เนื่องจากนี่คือรหัสกอล์ฟรหัสที่สั้นที่สุดที่ส่งกลับกาลเวลาในอดีตชนะอย่างถูกต้อง
ตัวอย่าง (JS, 127)
function f(x){return x.replace(/([^aeiouy])y$/,'$1i').replace(/([^aeiouy][aeiou])([^aeiouy])$/,'$1$2$2').replace(/e$/,'')+'ed'}