7 ms·
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
by mainland 17y 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/ http://www.metaocaml.org/examples/ for inspiration.
- fauigerzigerk 17y agoSure, 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.