3 ms·
If a is a constant, you can repeat it as inputs to when and unless. If a is a value output by a vertex further back, e.g. output of filter0, then yes you do n
by DonaldFisk 6y ago
If a is a constant, you can repeat it as inputs to when and unless. If a is a value output by a vertex further back, e.g. output of filter0, then yes you do need edges to when and unless. But the output could be labelled, automatically causing identical labelling at the destinations of the edges, and the lines corresponding to the edges could be hidden until the mouse pointer hovers over the either the output of filter0, the input at when, or the input at unless. It's better demonstrated than described in text, but I hope you follow it.
I'm aware that text is more compact, and understand the various user interface issues (e.g. crossing lines), but there are advantages in representing programs as graphs as opposed to text. One of these is the possibility of very strong type checking while a function is being defined, and I'm currently working on that. Another is that it should be possible to take advantage of homoiconicity: programs are graphs, and graphs are the most general data structures. Also, graphs (i.e. data) can double as programs.
Tutorials for my language can be found here: http://www.fmjlang.co.uk/fmj/tutorials/TOC.html http://www.fmjlang.co.uk/fmj/tutorials/TOC.html
These are out of date, so suffer from the problem you hinted at above, and they also don't explain my aims. I'll write updates to them when the new type system is properly working.
- jancsika 6y ago> It's better demonstrated than described in text, but I hope you follow it. I do understand that. I thought about implementing something like that for Pd, but in reverse. Programs there tend to look like write-only spaghetti, so it would be helpful to have something like a "spotlight" feature that temporarily removes (or blurs, etc.) the spaghetti that isn't part of a currently selected chain of objects. That would make spaghetti at least navigable with a mouse and some time. Anyhow, I've never found a dataflow or visual programming that really deals with the ergonomics of writing the code. At some point I just want to do a little math, or a quick conditional, or some such conceptually simple business for which the graph just gets in the way. At that point it's easiest to drop down to some kind of text-based DSL inside a single box and be done with it.
- DonaldFisk 6y agoYou can call Lisp from my language, and call my language from Lisp. But it will still need a lot more work before I start using it for tasks I currently prefer Lisp for.
- jancsika 6y agoCan you type Lisp into a node?
- DonaldFisk 6y agoNo, but I can enter an infix formula, e.g. F,v,x,m,b,k (F - b v - k x) / m For Lisp, I have to define a function using defun and make it available to the system. I'll add some new tutorials and a FAQ once I've got the new type system working, which is taking me longer than I expected.