Hacker News new | ask | show | jobs
by seanmcdirmid 4691 days ago
Those are just signatures, what is going on inside the boxes?

Also, how does one encode iterative computation, like a data-flow analysis, in Haskell? And symbol tables? Is it sufficient that the symbol table is encapsulated within compile even if it involves dictionary read/writes? I'm genuinely curious.

1 comments

Inside the boxes, you might use a (State SymbolTable) monad to carry around the symbol table:

  type SymbolTable = Map String Symbol
Me and a codeveloper are working on a type system in Haskell, where our current code has iterative computation, until it reaches a fixpoint.

Here's the iterative code:

https://github.com/Peaker/lamdu/blob/master/Lamdu/Data/Expre...

If you need to internally carry state, you just use a State monad to thread around the state purely.