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