Such a concept could use an example to solidify that point.
If I have a function Foo that adds two numbers together.
How is that represented in lisp (as a list you say?)?
How would one alter that function/lisp-list: to multiply numbers instead?
> How is that represented in lisp (as a list you say?)
I'm only a beginner in lisp too, but it as simple as
(defun add-numbers (a b) (+ a b))
if you look at it as "everything between () is a list" then you'll find the above code is actually:
[word word [word word] [word word word]]
to get it to multiply numbers instead, you'd just get the last item of the list `(+ a b)` -- replace the first item `+` with `*` (using other list functions, etc..) and then re-evaluate the entire list again,
So now your function will multiply values instead of adding them..
The "power" aspect comes from the fact that we use "other list functions" to change the code, ie: code is data that we can manipulate.
I've not really encountered any situations where I've needed to do anything like this yet (still learning), but, I found this example, where there's an existing function, and someone alters the body of the function to create a new function. My guess is that there's various ways of doing this type of stuff: https://stackoverflow.com/a/1220198
If I have a function Foo that adds two numbers together. How is that represented in lisp (as a list you say?)? How would one alter that function/lisp-list: to multiply numbers instead?