3 ms·
Why hasn't anyone made an homoiconic graph-based language? It seems like a natural extension of an homoiconic list-based language (i.e. Lisp).
by panic 17y ago
Why hasn't anyone made an homoiconic graph-based language? It seems like a natural extension of an homoiconic list-based language (i.e. Lisp).
- blasdel 17y agoBecause the absract syntax for a graph does not map directly to a concrete syntax the way lists do. With lists you can just always use the literal equivalent for sublists, but for graphs you need to be able to express true references to otherwise-anonymous nodes. This is hard. The W3C basically salted the earth for graph languages by promoting their awful XML syntax for RDF for so long -- it doesn't just encourage you to just write things as kookily-flavored standard XML trees -- it's also incapable of expressing true non-tree graphs! N3 is a much better syntax, but even it doesn't quite get quite to the level of homoiconicty you desire: http://www.w3.org/DesignIssues/Notation3 http://www.w3.org/DesignIssues/Notation3
- panic 17y agoI agree that it's difficult to represent graphs textually. So why not do it graphically?
- blasdel 17y agoBeyond text, there be dragons.
- iman 17y agoThe yampa library is an embedded domain specific language for haskell that is graph based. With regular haskell syntax it is indeed quite tricky (and ugly) to describe the graphs, but there is a popular haskell extension (arrow syntax) that makes things very elegant. You give names to the nodes of the graph and then you describe the connections between the nodes yampa is used for making interactive simulations (games) or graphical user interfaces. It takes a purely functional approach to these problem domains (no monads!) http://www.haskell.org/yampa/ http://www.haskell.org/yampa/