worked example: simple-adjective-sentence

    description:
        proof of concept of writing sentences
        in this case a simple adjective sentence
        obviously, the plan is to scale this up massively
        also, the plan is to eventually auto-learn adjectives from reading text
        but that is a ways off!!

    code:
        current |person> => |old man>
        learn-person |*> #=> learn(|op: current>, |person>, |_self>)

        adjectives |old man> => 10|crotchety> + 8|grumpy> + 5|friendly> + |kindly> + 0.2|sleepy>
        comma |old man> => |,>
      
        adjectives |old woman> => 2|kindly> + |sleepy> + |pleasant> + |strange>
        comma |old woman> => |,>
      
        adjectives |teenager> => |enthusiastic> + |energetic>
        comma |teenager> #=> |>

        pick-adjective (*) #=> clean weighted-pick-elt adjectives |_self>
        how-many-adjectives |*> #=> clean weighted-pick-elt (8|0> + 2|1> + 0.5|2> + 0.2|3>)


        insert-adjective |*> #=> |>
        insert-adjective |1> #=> ( pick-adjective _ comma ) current |person>
        insert-adjective |2> #=> ( pick-adjective . pick-adjective _ comma ) current |person>
        insert-adjective |3> #=> ( pick-adjective . pick-adjective . pick-adjective _ comma ) current |person>

        adjective-list |*> #=> smerge[", "] insert-adjective how-many-adjectives learn-person |_self>

        the-sentence |*> #=> smerge[" "] sdrop (|The> . adjective-list |_self> . |_self> _ |.>)
        sentence |*> #=> the-sentence pick-elt (|old man> + |old woman> + |teenager>)

    examples:
        sentence
            |The kindly, old man.>

        sentence
            |The old woman.>

        sentence
            |The teenager.>

        sentence
            |The strange, kindly, old woman.>

        sentence
            |The energetic teenager.>

    source code:
        load the-old-man.sw

Home