From: Paul Foley
Subject: Re: LISP PROGRAMMING
Date: 
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: 
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: 
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: 
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: 
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: 
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: 
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