Oh my blog! Whee! Wrong by design
  • More scripting

    Filed under Esolanean
    jan 24

    I ended up last night with a script that generated some decent syllables. Alas, when combined, they didn’t always work very well.

    So I changed my script a bit:

    tokens vowel a e i o
    tokens consonant b k l m n p r s t
    tokens noun-ender r n
    
    rule base {
     loop 0 1 1 5[2] 2[3] {
     rule syllable
     }
    }
    
    rule noun {
     rule base
     rule noun-ending
    }
    
    rule noun-ending {
     loop 0 0 1 1 1 {
     token consonant
     }
     token vowel
     token noun-ender
    }
    
    rule syllable {
     loop 0 0 1 1 1 {
     token consonant
     }
     token vowel
     loop 0 0 6[1] {
     token consonant
     }
    }
    
    rule syllable {
     translate {
     a # => a $consonant
     e # => e $consonant
     i # => i $consonant
     o # => o $consonant
     }
     loop 0 0 1 {
     repeat
     }
     token vowel
     loop 0 0 6[1] {
     token consonant
     }
    }
    
    startingrule noun 50
    
    

    Now, I’ve added a new variation of the syllable rule so as to make double consonants more likely. I found that ever so often, the rule would be applied to a syllable ending with a vowel, so I added the translate command to make sure there was a consonant at the end before repeating.

    That’s a lot better, but there are still some consonant pairs that I dislike. So I added this rule to the script:

    rule cleaning {
     translate {
     [b p] k => m k
     t k => s k
     [b p] n => n n
     b p => p p
     p b => b b
     l r => l l
     }
    }
    

    Which solves at least most of my problems. Words now look like this:

    • arpakpir
    • elobrar
    • akinan
    • oppin
    • abor
    • itokimkon
    • kanikbamen
    • oksan
    • ikabmemir
    • eppobin
    • an
    • etetelen
    • inter
    • orser
    • itannesmar
    • nabsipporon
    • imsinror
    • ekeon
    • obbason
    • mibosepir
    • ibasbir

    Not bad – and with a pretty uniform feeling, I think.

Leave a Reply