Tantangan
Tulis fungsi yang mengambil argumen yang merupakan kata kerja, dan mengembalikan bentuk lampau kata kerja. (Asumsikan bahwa kata kerjanya teratur)
Waktu lampau
Catatan: anggap y bukan konsonan atau vokal.
Biasanya, hanya menambahkan ed
setelah akhir kata kerja membuat bentuk lampau kata kerja.
Contoh: jump
→ jumped
, ask
→asked
Namun, ada aturan lain.
Jika karakter terakhir dari kata kerja yang diberikan
e
, hanya menambahkand
.Contoh:
love
→loved
,move
→moved
Jika kata kerja diakhiri dengan konsonan +
y
, maka ubahy
menjadii
, dan tambahkaned
.Contoh:
study
→studied
,cry
→cried
Namun, jika kata kerjanya diakhiri dengan vokal +
y
, maka tambahkan sajaed
.Contoh:
play
→played
,stay
→stayed
Jika kata kerja diakhiri dengan vokal dan konsonan, maka tulis konsonan sekali lagi, dan tambahkan
ed
.Contoh:
stop
→stopped
,plan
→planned
Namun, jika kata kerja diakhiri dengan banyak vokal + konsonan atau vokal tunggal + banyak konsonan, maka tambahkan saja
ed
.Contoh:
look
→looked
,jump
→jumped
Ada lebih banyak aturan, tetapi mari kita perhatikan aturan di atas saja. Misalnya, sesuai aturan di atas, visit
→ visitted
.
Pemenang
Karena ini adalah kode golf, kode terpendek yang dengan benar mengembalikan bentuk lampau menang.
Contoh (JS, 127)
function f(x){return x.replace(/([^aeiouy])y$/,'$1i').replace(/([^aeiouy][aeiou])([^aeiouy])$/,'$1$2$2').replace(/e$/,'')+'ed'}