Conjugate a Latin verb: Difference between revisions
Content added Content deleted
(Added a link.) |
(→{{header|Wren}}: Added checks for verbs which are too short to be regular ('ire' is irregular).) |
||
Line 109: | Line 109: | ||
<lang ecmascript>var conjugate = Fn.new { |infinitive| |
<lang ecmascript>var conjugate = Fn.new { |infinitive| |
||
if (!infinitive.endsWith("are")) Fiber.abort("Not a first conjugation verb.") |
if (!infinitive.endsWith("are")) Fiber.abort("Not a first conjugation verb.") |
||
var stem = infinitive[0..- |
var stem = infinitive[0...-3] |
||
if (stem.count == 0) Fiber.abort("Stem cannot be empty.") |
|||
System.print("Present indicative tense of '%(infinitive)':") |
System.print("Present indicative tense of '%(infinitive)':") |
||
for (ending in ["o", "as", "at", "amus", "atis", "ant"]) { |
for (ending in ["o", "as", "at", "amus", "atis", "ant"]) { |
||
Line 150: | Line 151: | ||
var conjugate = Fn.new { |infinitive| |
var conjugate = Fn.new { |infinitive| |
||
var letters = infinitive.toList |
var letters = infinitive.toList |
||
if (letters.count < 4) Fiber.abort("Infinitive is too short for a regular verb.") |
|||
var infinEnding = letters[-3..-1].join() |
var infinEnding = letters[-3..-1].join() |
||
var conj = infinEndings.indexOf(infinEnding) |
var conj = infinEndings.indexOf(infinEnding) |