From: Paul Foley
Subject: Re: LISP PROGRAMMING
Date: Sat, 16 Oct 2004 04:56:44 +0000
Message-ID: <m2r7nz45wz.fsf@mycroft.actrix.gen.nz> On 15 Oct 2004 14:28:49 -0700, sharda mishra wrote:
> Hello every one
> PLEASE help me writing the following program in LISP language
> ;-
> Write a LISP function ODD-REVERSE which reverses the elements
> occuring at odd numbered position but keeps the elements at even
> numbered position in their given position.
> for example:-
> ODD-REVERSE '(5 7 (6 4 )3 12 (2 1) 9)) returns the list
> (9 7 12 3 (6 4) (2 1) 5)
Sure, I'll do your homework for you...try this:
(defun odd-reverse (list)
((lambda(oddp)(funcall((lambda(lambda)((lambda(funcall)(funcall lambda(lambda
(lambda null rest first)(funcall(funcall funcall funcall)lambda null rest
first))))(lambda(funcall)(funcall lambda(lambda(lambda null rest first)
(funcall(funcall funcall funcall)lambda null rest first))))))(lambda
(funcall)(lambda(lambda null rest first)(cond((null lambda)(funcall((lambda
(lambda)((lambda(funcall)(funcall lambda(lambda(lambda = null cond)(funcall
(funcall funcall funcall)lambda = null cond))))(lambda(funcall)(funcall
lambda(lambda(lambda = null cond)(funcall(funcall funcall funcall)lambda =
null cond))))))(lambda(funcall)(lambda(lambda = null cond)(cond((= cond oddp)
lambda)((oddp cond)(funcall funcall(cons(first =)lambda)(rest =)null(- cond
oddp)))(t(funcall funcall(cons(first null)lambda)=(rest null)(- cond
oddp)))))))'()null(funcall((lambda(lambda)((lambda(funcall)(funcall lambda
(lambda(lambda null)(funcall(funcall funcall funcall)lambda null))))
(lambda(funcall)(funcall lambda(lambda(lambda null)(funcall(funcall funcall
funcall)lambda null))))))(lambda(funcall)(lambda(lambda null)(cond((null
lambda)null)(t(funcall funcall(rest lambda)(cons(first lambda)null)))))))
rest'())first))((oddp first)(funcall funcall(rest lambda)null(cons(first
lambda)rest)(+ first oddp)))(t(funcall funcall(rest lambda)(cons(first
lambda)null)rest(+ first oddp)))))))list'()'()oddp))1))
heheh
--
Malum est consilium quod mutari non potest -- Publilius Syrus
(setq reply-to
(concatenate 'string "Paul Foley " "<mycroft" '(··@) "actrix.gen.nz>")) From: Frank Buss
Subject: Re: LISP PROGRAMMING
Date: Sat, 16 Oct 2004 07:48:36 +0000
Message-ID: <ckqjok$mi9$1@newsreader2.netcologne.de> Paul Foley <·······@actrix.gen.nz> wrote:
> Sure, I'll do your homework for you...try this:
I don't think that the OP understands it, because it needs to be
properly indented:
(defun odd-reverse (list)
((lambda (oddp)
(funcall ((lambda (lambda)
((lambda (funcall)
(funcall lambda
(lambda (lambda null rest first)
(funcall (funcall funcall funcall)
lambda null rest first))))
(lambda (funcall)
(funcall lambda
(lambda (lambda null rest first)
(funcall (funcall funcall funcall)
lambda null rest first))))))
(lambda (funcall)
(lambda (lambda null rest first)
(cond
((null lambda)
(funcall
((lambda (lambda)
((lambda (funcall)
(funcall lambda
(lambda (lambda = null cond)
(funcall
(funcall funcall funcall) lambda = null cond))))
(lambda (funcall)
(funcall lambda
(lambda (lambda = null cond)
(funcall (funcall funcall funcall)
lambda = null cond))))))
(lambda (funcall)
(lambda (lambda = null cond)
(cond
((= cond oddp) lambda)
((oddp cond) (funcall funcall
(cons (first =) lambda) (rest =)null(- cond oddp)))
(t (funcall funcall (cons (first null) lambda) = (rest null) (- cond oddp)))))))
'() null (funcall
((lambda (lambda)
((lambda (funcall)
(funcall lambda
(lambda (lambda null)
(funcall (funcall funcall funcall)
lambda null))))
(lambda (funcall)
(funcall lambda
(lambda (lambda null)
(funcall (funcall funcall funcall)
lambda null))))))
(lambda (funcall)
(lambda (lambda null)
(cond
((null lambda) null)
(t (funcall funcall
(rest lambda)
(cons (first lambda) null)))))))
rest '())
first))
((oddp first)
(funcall funcall
(rest lambda)
null
(cons (first lambda) rest)
(+ first oddp)))
(t (funcall funcall
(rest lambda)
(cons (first lambda) null)
rest (+ first oddp)))))))
list '() '() oddp))
1))
--
Frank Bu�, ··@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de From: Svein Ove Aas
Subject: Re: LISP PROGRAMMING
Date: Sat, 16 Oct 2004 08:34:40 +0000
Message-ID: <ckqmcr$bbp$1@services.kq.no> Frank Buss wrote:
> Paul Foley <·······@actrix.gen.nz> wrote:
>
>> Sure, I'll do your homework for you...try this:
>
> I don't think that the OP understands it, because it needs to be
> properly indented:
>
> (defun odd-reverse (list)
Doesn't actually work, though. :(
From: Frank Buss
Subject: Re: LISP PROGRAMMING
Date: Sat, 16 Oct 2004 08:53:01 +0000
Message-ID: <ckqnhd$s4n$1@newsreader2.netcologne.de> Svein Ove Aas <·········@aas.no> wrote:
>> (defun odd-reverse (list)
>
> Doesn't actually work, though. :(
I've tried it in LispWorks and CLisp and it works in both. Which Common
Lisp implementation have you tried?
--
Frank Bu�, ··@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de From: Svein Ove Aas
Subject: Re: LISP PROGRAMMING
Date: Sat, 16 Oct 2004 09:49:05 +0000
Message-ID: <ckqqob$6kd$1@services.kq.no> Frank Buss wrote:
> Svein Ove Aas <·········@aas.no> wrote:
>
>>> (defun odd-reverse (list)
>>
>> Doesn't actually work, though. :(
>
> I've tried it in LispWorks and CLisp and it works in both. Which Common
> Lisp implementation have you tried?
>
Seems to be a problem with KNode. Never mind.
From: David Sletten
Subject: Re: LISP PROGRAMMING
Date: Sat, 16 Oct 2004 10:11:43 +0000
Message-ID: <zt6cd.12656$Kl3.6839@twister.socal.rr.com> Paul Foley wrote:
>
> Sure, I'll do your homework for you...try this:
>
> (defun odd-reverse (list)
> ((lambda(oddp)(funcall((lambda(lambda)((lambda(funcall)(funcall lambda(lambda
> (lambda null rest first)(funcall(funcall funcall funcall)lambda null rest
> first))))(lambda(funcall)(funcall lambda(lambda(lambda null rest first)
> (funcall(funcall funcall funcall)lambda null rest first))))))(lambda
> (funcall)(lambda(lambda null rest first)(cond((null lambda)(funcall((lambda
> (lambda)((lambda(funcall)(funcall lambda(lambda(lambda = null cond)(funcall
> (funcall funcall funcall)lambda = null cond))))(lambda(funcall)(funcall
> lambda(lambda(lambda = null cond)(funcall(funcall funcall funcall)lambda =
> null cond))))))(lambda(funcall)(lambda(lambda = null cond)(cond((= cond oddp)
> lambda)((oddp cond)(funcall funcall(cons(first =)lambda)(rest =)null(- cond
> oddp)))(t(funcall funcall(cons(first null)lambda)=(rest null)(- cond
> oddp)))))))'()null(funcall((lambda(lambda)((lambda(funcall)(funcall lambda
> (lambda(lambda null)(funcall(funcall funcall funcall)lambda null))))
> (lambda(funcall)(funcall lambda(lambda(lambda null)(funcall(funcall funcall
> funcall)lambda null))))))(lambda(funcall)(lambda(lambda null)(cond((null
> lambda)null)(t(funcall funcall(rest lambda)(cons(first lambda)null)))))))
> rest'())first))((oddp first)(funcall funcall(rest lambda)null(cons(first
> lambda)rest)(+ first oddp)))(t(funcall funcall(rest lambda)(cons(first
> lambda)null)rest(+ first oddp)))))))list'()'()oddp))1))
>
> heheh
>
Shouldn't we give him a fighting chance:
(defun odd-reverse (list)
((lambda (step)
(funcall
((lambda (F)
((lambda (future)
(funcall F
#'(lambda (l evens odds counter)
(funcall (funcall future future) l evens odds
counter))))
#'(lambda (future)
(funcall F
#'(lambda (l evens odds counter)
(funcall (funcall future future) l evens
odds counter))))))
#'(lambda (recur)
#'(lambda (l2 evens2 odds2 counter2)
(cond ((null l2)
(funcall
((lambda (F)
((lambda (future)
(funcall F
#'(lambda (l evens odds counter)
(funcall (funcall future
future) l evens odds counter))))
#'(lambda (future)
(funcall F
#'(lambda (l evens odds counter)
(funcall (funcall future
future) l evens odds counter))))))
#'(lambda (recur1)
#'(lambda (result evens1 odds1 counter1)
(cond ((= counter1 step) result)
((oddp counter1) (funcall recur1
(cons
(first evens1) result)
(rest
evens1)
odds1
(-
counter1 step)))
(t (funcall recur1
(cons (first odds1)
result)
evens1
(rest odds1)
(- counter1 step)))))))
'()
evens2
(funcall
((lambda (F)
((lambda (future)
(funcall F
#'(lambda (l result)
(funcall (funcall future
future) l result))))
#'(lambda (future)
(funcall F #'(lambda (l result)
(funcall (funcall future
future) l result))))))
#'(lambda (recur)
#'(lambda (l result)
(cond ((null l) result)
(t (funcall recur
(rest l)
(cons (first l)
result)))))))
evens2 '())
counter2))
((oddp counter2)
(funcall recur
(rest l2)
evens2
(cons (first l2) odds2)
(+ counter2 step)))
(t
(funcall recur
(rest l2)
(cons (first l2) evens2)
odds2
(+ counter2 step)))))))
list'()'() step))
1))
That should make it perfectly clear what's going on!
David Sletten From: David Sletten
Subject: Re: LISP PROGRAMMING
Date: Sat, 16 Oct 2004 10:22:28 +0000
Message-ID: <ED6cd.12671$Kl3.11432@twister.socal.rr.com> David Sletten wrote:
>
> Shouldn't we give him a fighting chance:
> (defun odd-reverse (list)
> ((lambda (step)
> (funcall
> ((lambda (F)
> ((lambda (future)
> (funcall F
> #'(lambda (l evens odds counter)
> (funcall (funcall future future) l evens odds
> counter))))
> #'(lambda (future)
> (funcall F
> #'(lambda (l evens odds counter)
> (funcall (funcall future future) l evens odds
> counter))))))
> #'(lambda (recur)
> #'(lambda (l2 evens2 odds2 counter2)
> (cond ((null l2)
> (funcall
> ((lambda (F)
> ((lambda (future)
> (funcall F
> #'(lambda (l evens odds counter)
> (funcall (funcall future
> future) l evens odds counter))))
> #'(lambda (future)
> (funcall F
> #'(lambda (l evens odds counter)
> (funcall (funcall future
> future) l evens odds counter))))))
> #'(lambda (recur1)
> #'(lambda (result evens1 odds1 counter1)
> (cond ((= counter1 step) result)
> ((oddp counter1) (funcall recur1
> (cons
> (first evens1) result)
> (rest
> evens1)
> odds1
> (-
> counter1 step)))
> (t (funcall recur1
> (cons (first odds1)
> result)
> evens1
> (rest odds1)
> (- counter1 step)))))))
> '()
> evens2
> (funcall
> ((lambda (F)
> ((lambda (future)
> (funcall F
> #'(lambda (l result)
> (funcall (funcall future
> future) l result))))
> #'(lambda (future)
> (funcall F #'(lambda (l result)
> (funcall (funcall future
> future) l result))))))
> #'(lambda (recur)
> #'(lambda (l result)
> (cond ((null l) result)
> (t (funcall recur
> (rest l)
> (cons (first l)
> result)))))))
> evens2 '())
Ooops! that should be odds2 above here...
> counter2))
> ((oddp counter2)
> (funcall recur
> (rest l2)
> evens2
> (cons (first l2) odds2)
> (+ counter2 step)))
> (t
> (funcall recur
> (rest l2)
> (cons (first l2) evens2)
> odds2
> (+ counter2 step)))))))
> list'()'() step))
> 1))
>
> That should make it perfectly clear what's going on!
>
> David Sletten