doing metaprogramming in javascript through babel/traverse makes me realize how brilliant lisp 'fixed point' syntax is
doing metaprogramming in javascript through babel/traverse makes me realize how brilliant lisp 'fixed point' syntax is
This is an unbirthday present for @screwlisp,
who posted earlier about quines.
To give it as a puzzle at first:
find a Python quine as a string Q such that eval(Q) == Q.
A spoiler to follow.
_________
The term "fixed point" comes to mind. And the Y combinator comes into
this picture as well; wie another day.
(Estimating Python's degree of homoiconicity is left as an exercise.)
#ComputerProgramming
#Homoiconicity
#ProgrammingPuzzle
#Puzzle
#Python
#Quine
P.P.S.
Is this The Heart of Homoiconicity™?
A rare warranted use of `eval' (Elisp):
(let ((q '((lambda (x) (list x x)) (lambda (x) (list x x)))))
(equal q (eval q)))
=> t
after
(setq lexical-binding nil)
as needed.
With the idea of promoting the usage of #guix and my favourite #programming language #guile #scheme I created a small project which is still in early stages, but I think with some more #love and #effort can be quite something.
https://jointhefreeworld.org/guile-show-hub/
The Guile ShowHub! Promoting all Guile projects out there! By reading from #foss Guix project source code we can tap into a plethora of information, and leverage the #homoiconicity of #lisp to directly analyze the source code and extract info.
Dear Friends of #Homoiconicity #ProgrammingTools,
https://en.wikipedia.org/wiki/Homoiconicity
Have you tried any⁉️
I have quite a few as they can be self-documenting. For example, when Curl was available for Linux and supposedly going to be open sourced, our intrepid team built and used CurlChat to communicate. 🗨️
https://en.wikipedia.org/wiki/Curl_(programming_language)
https://peace.fandom.com/wiki/CurlChat
#AI is producing #code in MANY languages. However, some of us don't have the time or capacity to use Windows, Swift or closed source money making languages to provide core-pirate/corporate centralised revenue...
I need the #security of Veilid or GROWL
https://www.forum.puppylinux.com/viewtopic.php?p=101322#p101322
Have a great day Wombles and Wumans of the cyberverses. We come in Pieces, ready assembled. Almost. ❤️
Reflections on C++ Reflection
https://www.youtube.com/watch?v=eSJsURVV-Zk
#cplusplus
#isocpp
#cplusplus23
#isocplusplus23
#reflection
#homoiconicity
#programming
A high schooler knows that a function is a map from the domain set \(X\) to the codomain set \(Y\), that is \(f : X \rightarrow Y\). He additionally knows that a function is also a set of ordered pairs \((x, y) \in X \times Y\), where \(𝑥 \in X\) and \(y \in Y\).
Waiving our hands furiously, we can call sets the typed data and functions between sets the code. From that point of view, the function code is just typed data, and vice versa: both are sets. And if functions are sets, then there are higher-order functions between function sets.
Over the past few decades, "popular" programming languages employed in IT have begun to adopt functional programming concepts, and with that, the higher-order functions (functionals). But to date, only FP languages—LISP, ML, Haskell, etc.—exploit the concept of #homoiconicity: code \(\equiv\) data.
@ellenor2000 No, I don't know why this pattern seems to apply to very distinct circumpolar languages with elaborate and non-overlapping origins, but is conspicuously missing from pretty much all Indo-European languages.
Could be some sort of left-over word from a substrate Paleo-Siberian migration pattern and language spread that other languages eventually replaced in later migration waves, possibly.
There used to be tales, told with straight faces, and taken overly seriously, about some large and harshest parts of Northern Siberia possibly only being settled once (well, sort of — many 'original settlements' there were actually nomadic) before modernity, but, well, now that we have access to haplogroup-based migration data, it's clear that this could not have been the case.
It kind of makes sense that the word for 'language' would be one of the first words to be made, and so, if preserved, it could relatively easily become one of the most ancient words around.
The Io programming language is an experiment in #Self style delegation, actor-style concurrency, and #Lisp style #homoiconicity.
I remember l downloaded it and played with it on a work trip, oh, twenty years ago now. I sat in my hotel room and played with it for hours every night. It was one of the most productive bits of messing around I’ve ever done.
(I uh…would not get along with the author though, I don’t think. Don’t meet your heroes.)