I wish Emacs would provide a canvas like API to draw in buffers. That way integrated graphics could be easily added. This would create a completely new Emacs experience.
And arbitrary objects can take the role of unique values. It's quite convenient, especially considering that Mathematica's language and display system let you put arbitrary expressions anywhere you want (like a 3D plot animation used as the surface texture of a 3D cube).
In a heterogeneous mix of tools, getting the channel right is a big part of the challenge. Lots of the interactivity is going to be client-specific (i.e. what's possible / attractive in Eclipse is different from Emacs/vim/TextMate), but the channel underneath is a big enabler.
Would love to hear what you have in mind specifically, if only to see if there's a vector I'm not considering that I should be.
I was thinking of using a browser, as you'd get images, tables and so forth for free. The Ace code editor could be used for the prompt, which would provide syntax highlighting and indent rules for the prompt.
Yes, it was pretty artistic as far as programs linked on Hacker News go, but technically... it was just a bunch of functions and macros which produced formatted strings.
Not that it's bad on itself, but the title suggested otherwise.
Somebody showed me some shit Mathematica can do (by way of embedding images and live representations of data) that goes way beyond this and any other Lisp REPL I've seen, so let's not get too smug.
On another note, it's a pleasure to see a bit of the I Ching in there - in the classic Wilhelm/Baynes edition, no less. It is one of the greatest works of civilization. (As for Wilhelm/Baynes: how a translation of a translation could have turned out so well is a mystery. Putting it beside any other I Ching in English is like comparing a Monet to a daguerreotype.)
I rarely use the REPL directly in Lisp anymore, I use the Superior Lisp Interaction Mode for Emacs, better known as SLIME. emacs had a project running for a while for video editing. It also has a working google maps embedding. I'm sure with appropriate whacking I could intertwine it with a Lisp listener instead of my IDE.
Slime is a Lisp REPL. It's the one I was thinking of. Yes, people have dabbled around the edges adding images and other things that Emacs can do. But that isn't the same thing as a REPL designed with data visualization in mind. Lisp is not the state of the art here.
To be 100% honest, I'm not sure why a programming language REPL needs to have full data visualization. I may not fully get the idea of REPLs, but it would seem to me that that would be the responsibility of a layer above it to manage data presentation; sophisticated data I would consider to require a domain-specific viewer anyway.
I agree with you there, so I guess what I want is a REPL that has hooks for custom printers, i.e to display an object of type X my way instead of the usual way. I'd like "printing" to optionally include graphics or whatever else makes for a good display of that data. And I'd like the representation to be interactive, so that one can drill down into sub-data or whatever else is appropriate. That too (obviously) is the responsibility of the custom printer, not the REPL itself, but I wish the REPL would make it easy to build such extensions. Little domain-specific visualizers.
Why? Well, some programs rely heavily on specific data structures that may not be very easy to interact with if you print them out as generic lists or hashtables or whatever. The Slime Inspector is next to useless for things of any complexity.
In the "Definitions" pane at the top, we define three variables, bruce-lee, energy-blast, and terrible-accident. In the "Interations" pane at the bottom (here's the REPL), we compose them together.
(let ((i0 (parse-integer "4DF0" :radix 16)))
(loop for i from i0 to (+ i0 300) do (princ (string (code-char i)))))
䷰䷱䷲䷳䷴䷵䷶䷷䷸䷹䷺䷻䷼䷽䷾䷿一丁丂七丄丅丆万丈三上下丌不与丏丐丑丒专且丕世丗丘丙业丛东丝丞丟丠両丢丣两严並丧丨丩个丫丬中丮丯丰丱串丳临丵丶丷丸丹为主丼丽举丿乀乁乂乃乄久乆乇么义乊之乌乍乎乏乐乑乒乓乔乕乖乗乘乙乚乛乜九乞也习乡乢乣乤乥书乧乨乩乪乫乬乭乮乯买乱乲乳乴乵乶乷乸乹乺乻乼乽乾乿亀亁亂亃亄亅了亇予争亊事二亍于亏亐云互亓五井亖亗亘亙亚些亜亝亞亟亠亡亢亣交亥亦产亨亩亪享京亭亮亯亰亱亲亳亴亵亶亷亸亹人亻亼亽亾亿什仁仂仃仄仅仆仇仈仉今介仌仍从仏仐仑仒仓仔仕他仗付仙仚仛仜仝仞仟仠仡仢代令以仦仧仨仩仪仫们仭仮仯仰仱仲仳仴仵件价仸仹仺任仼份仾仿伀企伂伃伄伅伆伇伈伉伊伋伌伍伎伏伐休伒伓伔伕伖众优伙会伛伜
NIL
http://dspace.mit.edu/handle/1721.1/6946
http://en.wikipedia.org/wiki/Common_Lisp_Interface_Manager
http://www.sts.tu-harburg.de/~r.f.moeller/uims-clim/clim-int...