Reputation: 61
Is there any way by which I can define functions my_list
, my_cons
, my_append
which perform similar function as list
, cons
and append
respectively?
Otherwise where can I find the implementation of these functions?
Thanks
Upvotes: 2
Views: 284
Reputation: 1238
For my_list and my_append, the solutions are:
(defun my_list (&rest arguments)
`(,@arguments)
)
(defun my_append (a_list an_item)
`(,@a_list ,an_item)
)
(my_append (my_list 'a 'b 'c) 'd)
I'm probably wrong but I dont know any alternative method to make pairs, so an alternative to cons do not seems possible. Still, I'm quite new to the LISP world.
Upvotes: 2
Reputation: 41769
If you want your lists to be the same as the onces native to your application, You have to start with some primitive to construct a cons, probably cons or dotted-pair, and something to pull a cons cell apart (car, cadr). The others can be build from that.
If you want to re-implement things that are functionally (pun intended) equivalent, see http://en.wikipedia.org/wiki/Cons#Not_technically_fundamental
Upvotes: 0