Yes, a Lisp. I want to write Lisp for Factor. dup swap only gets you so far.
Slava's posts are very enlightening, how he decomposes problems into a million words. But in practice, it just takes me too much time to solve problems (that don't involve just calling a library).
[edit]
Even though you could say I could write code using locals and stuff, but that doesn't feel natural. Or I'm just used to prefix, or prefix is better for some reason.
(+ 10 (* 20 30)) looks better to me than 20 30 * 10 +, even though, as Factor folks will tell you, concatenative languages are the ones with the "direct" syntax: Lisp is the one inverted.
[edit 2]
Another annoying thing: programming in Factor forces you to make a name for code you wouldn't normally name. Again, folks will say that that actually makes your program better, more testable, etc. In practice: harder.
That would be a cool project. The Factor compiler enforces static stack effects for words, so mapping them to Lisp functions, and making the generated code efficient, should be pretty doable.
Yeah, but for some reason keeping track of flow is much harder. I've tried to use Factor a couple times, but I eventually just get lost in trying to make the logic work.
Slava Pestov and his crew have done a really tremendous job at the language and environment, though. Everyone should play around with it once or twice :)
http://docs.racket-lang.org/quick/index.html