Hacker News new | ask | show | jobs
by mainland 6020 days ago
It's certainly possible for a typed language like ML or Haskell to support metaprogramming. As other have noted, Haskell has Template Haskell. However, systems like MetaML and MetaOCaml support metaprogramming and give much stronger typing guarantees than Template Haskell. See http://www.metaocaml.org/examples/ for inspiration.
1 comments

Sure, but there are theoretical limits to what runtime metprogramming can do whilst upholding the guarantees that a static type system provides.

For instance, in order to check that a particular function call conforms to the function signature, the function signature must at least exist. Type checking a call to a function for which not even the signature exists anwhere within the system is impossible.