On Sunday, September 29, 2019 at 6:02:31 PM UTC-5, Tomasz Rola wrote: > > On Sun, Sep 29, 2019 at 12:07:11PM -0700, Philip Thrift wrote: > > > > > > On Sunday, September 29, 2019 at 11:13:36 AM UTC-5, Tomasz Rola wrote: > > > > [...] > > > Well, my snark remark have been written because something in me told > > > me you were asking with tongue in cheek. And maybe because I consider > > > subject to be either old and dead or very very futuristic. > > > > [...] > > > (I use "LISP" with meaning "one of LISP family", so you would probably > > > want to substitude LISP with any of your preferrence: LISP, Autolisp, > > > R7RS, CL, Elisp, scm or what have you). > [...] > > > > Racket > > > > https://racket-lang.org/ > > > > seems to be where a lot of Lispers go to now. > > Hum, not me. I used to like and avere Racket, but they steer away from > Scheme (as far as I understand things) and more towards being > independent from it. I am not blaming them, but I do not have to go > the same way. And the talk they had in July about letting go of > parentheses-based syntax was not something I wanted to read. > > Certainly, they will try to keep backwards compatibility and since I > could still write R5RS in IDE some time ago, I guess it will probably > be so, for a while. > > Regardless of planned changes, yes, Racket is going strong these > days. Long term, Racket may end up being another Python. Or Lua. I > think I will wait some more time and see how things unfold. No bad > feeling towards any particular programming language, but I prefer > those which allow for rewriting as little as possible of old code > while they evolve and I am yet to see how Racket is going to fare. > > If I planned to keep using Lisp, I would have probably stuck with CL > and/or R7RS Scheme. There is some nice looking effort to standardize > libraries (when possible) for R7RS Scheme-s, so I think there is life > after Racket, too. > > > It is used for > > > > – language-oriented programming > > <https://en.wikipedia.org/wiki/Language-oriented_programming> > > – language “workbenches < > https://en.wikipedia.org/wiki/Language_workbench> > > > > (Racket came from Scheme - get the naming joke?) > > If you say there is a joke, I have to trust your word for it :-). > > > I was in TI's 1980s AI Lab that made the TI Lisp Machine. Here's > something > > I did: > > > > *Common Lisp relations: an extension of Lisp for logic programming* > > Philip R. Thrift > > Proceedings. 1988 International Conference on Computer Languages > > [abstract > > < > https://www.semanticscholar.org/paper/Common-Lisp-relations%3A-an-extension-of-Lisp-for-Thrift/31188679f57821fd125be10382e9d41be0d59fd1> > > > > ] > > > > > > I'm toying with a new language extension I invented: > > > > CLIPjoint > > Concurrent Logic Implementation of Processes > > (embedded in Racket) > > <https://en.wikipedia.org/wiki/Language_workbench> > > Ok, I got it. Your count of parentheses is bigger than mine. > > > Maybe someone should work on a Racket workbench for quantum programming? > > > > Heres's a Racket workbench for Python: > > - > > > https://pdfs.semanticscholar.org/cbf5/ee924abd50596657f96f7e1a0c51c9854ed7.pdf > > > Maybe. Out of curiosity, what actually does it mean, "Racket workbench > for quantum programming"? What is such thing supposed to do? Why it > would be better than just a library of Scheme functions/macros? > > Wrt "workbench for Python", I am not sure if I ever heard of it before > and I wonder how this effort will be going in the future. Python has > been evolving, IMHO, from elegant language of late 1990-ties into some > kind of blob. And Racket itself is going to evolve a bit too. So > maintaing the stuff might be like kicking one dead whale uphills while > dragging another tied to one's neck. > > -- > Regards, > Tomasz Rola > > -- > ** A C programmer asked whether computer had Buddha's nature. ** > ** As the answer, master did "rm -rif" on the programmer's home ** > ** directory. And then the C programmer became enlightened... ** > ** ** > ** Tomasz Rola mailto:[email protected] <javascript:>
Racket has syntax-meta "define-syntax" features, so one can manipulate programs as objects. A workbench can manage Racket "images" of Python programs: 1 def fib(n): 2 if n == 0: return 0 3 elif n == 1: return 1 4 else: return fib(n-1) + fib(n-2) 5 print fib(30) 1 (define (:fib :n) 2 (cond 3 ((py-truth (py-eq :n 0)) 0) 4 ((py-truth (py-eq :n 1)) 1) 5 (else (py-add (py-call :fib (py-sub :n 1)) 6 (py-call :fib (py-sub :n 2)))))) 7 (py-print (py-call :fib 30)) @philipthrift -- You received this message because you are subscribed to the Google Groups "Everything List" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/everything-list/549f9dae-4fd1-4fa4-a792-ccbe2681ec33%40googlegroups.com.

