tricu

An interpreted language for exploring Tree Calculus
Log | Files | Refs | README | LICENSE

patterns.tri (668B)


      1 !import prelude *
      2 !import io *
      3 !import consumers_source_worker as Source
      4 !import consumers_lexical_worker as L
      5 !export *
      6 -- Run from the repository root with --io --allow-read demos/consumers/lessons.
      7 
      8 load = Source.loadSource "demos/consumers/lessons/patterns/shape.scp" t
      9 showShape worker label tree = putStrLn (append label
     10   (resultOr "ERROR" (L.lRunChecked worker tree)))
     11 run = onOk_ load (worker : thenIO
     12   (showShape worker "Leaf: " t)
     13   (thenIO (showShape worker "Stem Leaf: " (t t))
     14     (thenIO (showShape worker "Stem Fork: " (t (t t t)))
     15       (thenIO (showShape worker "Stem Stem: " (t (t t)))
     16         (showShape worker "Fork: " (t t t))))))
     17 main = io run