Re: Function as a parameter
Posted: Thu Jun 28, 2012 3:49 am
What you refer to is commonly known as binding. I.e. An identifier in environment (a term in the program code) which is bound (refers to) some value.
E.g. in CL:
In the case above let creates an environment which inherits all bindings from the surrounding environments and adds a binding for the identifier foo to the value 42.
Something very similar happens in C:
where you created a binding to the identifier foo in the block of code.
If you want to print an array or a member of an array, you would do something like this:
However, it is imprecise to say that "array has a name". Objects don't have name in general, unless you create some such property of an object. "Names" are designations of where the objects are located. Thus, for example:
will print: (0 2 3) (0 2 3). I.e. both foo and bar are the "names" of the same list.
E.g. in CL:
Code: Select all
(let ((foo 42))
(princ foo))
Something very similar happens in C:
Code: Select all
{
int foo = 42;
printf("%d", foo);
}
If you want to print an array or a member of an array, you would do something like this:
Code: Select all
(let ((foo #(1 2 3)))
(princ foo)
(princ (aref foo 1)))
Code: Select all
(let* ((foo (list 1 2 3))
(bar (rplaca foo 0)))
(princ foo)
(princ bar))