Author Topic: (cdddddddddddddddr Lst)  (Read 4465 times)

0 Members and 1 Guest are viewing this topic.

Grrr1337

  • Swamp Rat
  • Posts: 812
(cdddddddddddddddr Lst)
« on: November 26, 2016, 03:35:25 PM »
Hi guys,
Any idea how to write such function that returns a list starting from nth x position ?
Code: [Select]
Lst ; a 1
(cdr Lst) ; b 2
(cddr Lst) ; c 3
(cdddr Lst) ; d 4
(cddddr Lst) ; e 5
Code: [Select]
(cdddddr Lst) ; f 6 ???
(cddddddr Lst) ; g 7 ???
                ...
My brain is stuck today.
EDIT:
Figured something with an old function I had:
Code: [Select]
_$ (defun ShiftListRightRepeat ( n Lst / nLst )
(if (and (= 'INT (type n)) (listp Lst))
(progn
(setq nLst Lst)
(repeat n (setq nLst (append (cdr nLst) (list (car nLst)))))
)
)
nLst
); defun ShiftListRightRepeat
SHIFTLISTRIGHTREPEAT
_$ (setq Lst (mapcar 'chr (vl-string->list "ABCDEFGHIJKLMNOPQ")))
("A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q")
_$ (ShiftListRightRepeat 1 Lst)
("B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "A")
_$ (ShiftListRightRepeat 2 Lst)
("C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "A" "B")
_$ (ShiftListRightRepeat 3 Lst)
("D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "A" "B" "C")
_$ (ShiftListRightRepeat 4 Lst)
("E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "A" "B" "C" "D")
_$ (ShiftListRightRepeat 5 Lst)
("F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "A" "B" "C" "D" "E")
_$ 
« Last Edit: November 26, 2016, 03:49:11 PM by Grrr1337 »
(apply ''((a b c)(a b c))
  '(
    (( f L ) (apply 'strcat (f L)))
    (( L ) (if L (cons (chr (car L)) (f (cdr L)))))
    (72 101 108 108 111 32 87 111 114 108 100)
  )
)
vevo.bg

CAB

  • Global Moderator
  • Seagull
  • Posts: 10401
Re: (cdddddddddddddddr Lst)
« Reply #1 on: November 26, 2016, 03:54:42 PM »
I've reached the age where the happy hour is a nap. (°¿°)
Windows 10 core i7 4790k 4Ghz 32GB GTX 970
Please support this web site.

MP

  • Seagull
  • Posts: 17750
  • Have thousands of dwgs to process? Contact me.
Re: (cdddddddddddddddr Lst)
« Reply #2 on: November 26, 2016, 04:02:29 PM »
There are an abundant number of ways to do it but a simple, nominal code, recursively flavored one might be:

Code: [Select]
(defun cdrn ( n lst )
    (if (and lst (< 0 n))
        (cdrn (1- n) (cdr lst))
        lst
    )
)

(cdrn 7 '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15))

>> (7 8 9 10 11 12 13 14 15)


It's not overly efficient but sometimes uber efficient is not needed. Anyways ... cheers.
Engineering Technologist • CAD Automation Practitioner
Automation ▸ Design ▸ Drafting ▸ Document Control ▸ Client
cadanalyst@gmail.comhttp://cadanalyst.slack.comhttp://linkedin.com/in/cadanalyst

Grrr1337

  • Swamp Rat
  • Posts: 812
Re: (cdddddddddddddddr Lst)
« Reply #3 on: November 26, 2016, 04:35:24 PM »
Thanks alot guys! :)
(apply ''((a b c)(a b c))
  '(
    (( f L ) (apply 'strcat (f L)))
    (( L ) (if L (cons (chr (car L)) (f (cdr L)))))
    (72 101 108 108 111 32 87 111 114 108 100)
  )
)
vevo.bg

ribarm

  • Gator
  • Posts: 3310
  • Marko Ribar, architect
Re: (cdddddddddddddddr Lst)
« Reply #4 on: November 26, 2016, 04:43:38 PM »
Maybe just :

Code: [Select]
(defun cdrn ( n l )
  (repeat n
    (setq l (cdr l))
  )
  l
)
Marko Ribar, d.i.a. (graduated engineer of architecture)

:)

M.R. on Youtube

Grrr1337

  • Swamp Rat
  • Posts: 812
Re: (cdddddddddddddddr Lst)
« Reply #5 on: November 26, 2016, 04:59:06 PM »
Maybe just :

Code: [Select]
(defun cdrn ( n l )
  (repeat n
    (setq l (cdr l))
  )
  l
)
Thats even simplier, reminds me about iterating thru list! :)
By the way should "l" be localised ? (defun cdrn (n l / l) ... ) - no?
(apply ''((a b c)(a b c))
  '(
    (( f L ) (apply 'strcat (f L)))
    (( L ) (if L (cons (chr (car L)) (f (cdr L)))))
    (72 101 108 108 111 32 87 111 114 108 100)
  )
)
vevo.bg

MP

  • Seagull
  • Posts: 17750
  • Have thousands of dwgs to process? Contact me.
Re: (cdddddddddddddddr Lst)
« Reply #6 on: November 26, 2016, 05:02:34 PM »
it's already localised
Engineering Technologist • CAD Automation Practitioner
Automation ▸ Design ▸ Drafting ▸ Document Control ▸ Client
cadanalyst@gmail.comhttp://cadanalyst.slack.comhttp://linkedin.com/in/cadanalyst

MP

  • Seagull
  • Posts: 17750
  • Have thousands of dwgs to process? Contact me.
Re: (cdddddddddddddddr Lst)
« Reply #7 on: November 26, 2016, 05:05:32 PM »
i.e.

(setq lst '(0 1 2 3 4 5 6 7))

(princ (cdrn 3 lst)) >> (3 4 5 6 7)

(princ lst)          >> (0 1 2 3 4 5 6 7)
Engineering Technologist • CAD Automation Practitioner
Automation ▸ Design ▸ Drafting ▸ Document Control ▸ Client
cadanalyst@gmail.comhttp://cadanalyst.slack.comhttp://linkedin.com/in/cadanalyst

Grrr1337

  • Swamp Rat
  • Posts: 812
Re: (cdddddddddddddddr Lst)
« Reply #8 on: November 26, 2016, 05:12:39 PM »
Thanks mr.Puckett, I'm still a dummy lisper.
(apply ''((a b c)(a b c))
  '(
    (( f L ) (apply 'strcat (f L)))
    (( L ) (if L (cons (chr (car L)) (f (cdr L)))))
    (72 101 108 108 111 32 87 111 114 108 100)
  )
)
vevo.bg

MP

  • Seagull
  • Posts: 17750
  • Have thousands of dwgs to process? Contact me.
Re: (cdddddddddddddddr Lst)
« Reply #9 on: November 26, 2016, 05:22:43 PM »
You are no dummy and you are most welcome.
Engineering Technologist • CAD Automation Practitioner
Automation ▸ Design ▸ Drafting ▸ Document Control ▸ Client
cadanalyst@gmail.comhttp://cadanalyst.slack.comhttp://linkedin.com/in/cadanalyst

Lee Mac

  • Seagull
  • Posts: 12928
  • London, England
Re: (cdddddddddddddddr Lst)
« Reply #10 on: November 26, 2016, 06:24:52 PM »
Another, for a minor increase in performance for long lists:
Code - Auto/Visual Lisp: [Select]
  1. (defun cdrn ( n l )
  2.     (repeat (/   n 4) (setq l (cddddr l)))
  3.     (repeat (rem n 4) (setq l (cdr    l)))
  4.     l
  5. )

Lee Mac

  • Seagull
  • Posts: 12928
  • London, England
Re: (cdddddddddddddddr Lst)
« Reply #11 on: November 26, 2016, 06:53:47 PM »
And another:
Code - Auto/Visual Lisp: [Select]
  1. (defun cdrn ( n l )
  2.     (vl-member-if '(lambda ( x ) (minusp (setq n (1- n)))) l)
  3. )

Grrr1337

  • Swamp Rat
  • Posts: 812
Re: (cdddddddddddddddr Lst)
« Reply #12 on: November 27, 2016, 05:03:04 AM »
And another:
Code: [Select]
(defun cdrn ( n Lst )
(member (nth n Lst) Lst)
)
:wink:
(apply ''((a b c)(a b c))
  '(
    (( f L ) (apply 'strcat (f L)))
    (( L ) (if L (cons (chr (car L)) (f (cdr L)))))
    (72 101 108 108 111 32 87 111 114 108 100)
  )
)
vevo.bg

roy_043

  • Water Moccasin
  • Posts: 1895
  • BricsCAD 18
Re: (cdddddddddddddddr Lst)
« Reply #13 on: November 27, 2016, 06:25:24 AM »
@Grrr1337:
Your last suggestion is problematic if the list contains duplicate items.

Grrr1337

  • Swamp Rat
  • Posts: 812
Re: (cdddddddddddddddr Lst)
« Reply #14 on: November 27, 2016, 06:31:14 AM »
@Grrr1337:
Your last suggestion is problematic if the list contains duplicate items.
Damn, you are correct.
(apply ''((a b c)(a b c))
  '(
    (( f L ) (apply 'strcat (f L)))
    (( L ) (if L (cons (chr (car L)) (f (cdr L)))))
    (72 101 108 108 111 32 87 111 114 108 100)
  )
)
vevo.bg

MP

  • Seagull
  • Posts: 17750
  • Have thousands of dwgs to process? Contact me.
Re: (cdddddddddddddddr Lst)
« Reply #15 on: November 27, 2016, 09:53:13 AM »
Code: [Select]
(defun cdrn ( n lst )
    (   (lambda (f) (vl-member-if 'f lst))
        (lambda (x) (if (minusp (setq n (1- n))) (defun f (x) t)))
    )
)
Engineering Technologist • CAD Automation Practitioner
Automation ▸ Design ▸ Drafting ▸ Document Control ▸ Client
cadanalyst@gmail.comhttp://cadanalyst.slack.comhttp://linkedin.com/in/cadanalyst

Grrr1337

  • Swamp Rat
  • Posts: 812
Re: (cdddddddddddddddr Lst)
« Reply #16 on: November 27, 2016, 10:05:23 AM »
Code: [Select]
(defun cdrn ( n lst )
    (   (lambda (f) (vl-member-if 'f lst))
        (lambda (x) (if (minusp (setq n (1- n))) (defun f (x) t)))
    )
)
This is mind-blown! and it reminds me of this:
Have no sense where this would be useful but for academia / lexical scope demonstration ...

Code: [Select]
(defun zomg ( ss )
    (if (eq 'pickset (type ss))
        (   (lambda (zomg) (zomg ss 0 nil))
            (lambda (ss i r / e) (if (setq e (ssname ss i)) (zomg ss (1+ i) (cons e r)) r))
        )
    )   
)
I don't remember seeing someone else to use recursive lambdas except you. :)
(apply ''((a b c)(a b c))
  '(
    (( f L ) (apply 'strcat (f L)))
    (( L ) (if L (cons (chr (car L)) (f (cdr L)))))
    (72 101 108 108 111 32 87 111 114 108 100)
  )
)
vevo.bg

Lee Mac

  • Seagull
  • Posts: 12928
  • London, England
Re: (cdddddddddddddddr Lst)
« Reply #17 on: November 27, 2016, 10:33:03 AM »
Code: [Select]
(defun cdrn ( n lst )
    (   (lambda (f) (vl-member-if 'f lst))
        (lambda (x) (if (minusp (setq n (1- n))) (defun f (x) t)))
    )
)

Unlike the vl-remove-if/-not expression, I see no advantage to using this construct with vl-member-if/-not, given that evaluation of the list items ceases when the predicate function is validated?

MP

  • Seagull
  • Posts: 17750
  • Have thousands of dwgs to process? Contact me.
Re: (cdddddddddddddddr Lst)
« Reply #18 on: November 27, 2016, 10:40:17 AM »
You're correct Lee:

If predicate-function returns a non-nil value, vl-member-if returns the rest of the list in the same manner as the member function.

I shouldn't code before having my first coffee. :uglystupid2:
Engineering Technologist • CAD Automation Practitioner
Automation ▸ Design ▸ Drafting ▸ Document Control ▸ Client
cadanalyst@gmail.comhttp://cadanalyst.slack.comhttp://linkedin.com/in/cadanalyst

MP

  • Seagull
  • Posts: 17750
  • Have thousands of dwgs to process? Contact me.
Re: (cdddddddddddddddr Lst)
« Reply #19 on: November 27, 2016, 10:45:35 AM »
I don't remember seeing someone else to use recursive lambdas except you. :)

Wow, you have an extraordinary memory. O.o All I remember of that post is that it faded into the ether rather quickly.  :-D
Engineering Technologist • CAD Automation Practitioner
Automation ▸ Design ▸ Drafting ▸ Document Control ▸ Client
cadanalyst@gmail.comhttp://cadanalyst.slack.comhttp://linkedin.com/in/cadanalyst

Marc'Antonio Alessi

  • Swamp Rat
  • Posts: 1454
  • Marco
Re: (cdddddddddddddddr Lst)
« Reply #20 on: November 28, 2016, 02:50:36 AM »
If you like cdddddddddddddddddddr:
Code: [Select]
; (setq aList '("01 "02" "03" "04" "05" "06" "07" "08" "09" "10" "11" "12" "13" "14" "15"))
; (ALE_List_NthCdr    8 aList) => ("09" "10" "11" "12" "13" "14" "15")
; (ALE_List_Member "11" aList) => ("11" "12" "13" "14" "15")
; (ALE_List_LastN     3 aList) => ("13" "14" "15")
; (ALE_List_FirstN    3 aList) => ("01" "02" "03")
; (ALE_List_LastN    10 aList) => ("06" "07" "08" "09" "10" "11" "12" "13" "14" "15")
; (ALE_List_FirstN   10 aList) => ("01" "02" "03" "04" "05" "06" "07" "08" "09" "10")
; (Ale_List_Slice  2 10 aList) => ("03" "04" "05" "06" "07" "08" "09" "10" "11")
;
; 2014/02/19 - n (Position) Nth like
(defun ALE_List_NthCdr (n l)
  (repeat (/       n              1000) (setq l (Cd1000r l)))
  (repeat (/ (setq n (rem n 1000)) 100) (setq l (Cd100r  l)))
  (repeat (/ (setq n (rem n  100))  10) (setq l (Cd10r   l)))
  (repeat (/ (setq n (rem n   10))   4) (setq l (cddddr  l)))
  (repeat (rem n 4)                     (setq l (cdr     l)))
  l
)
; 2014/03/01 for VERY long lists
(defun ALE_List_NthCdrL (n l)
  (repeat (/       n               10000) (setq l (Cd10000r l)))
  (repeat (/ (setq n (rem n 10000)) 1000) (setq l (Cd1000r  l)))
  (repeat (/ (setq n (rem n  1000))  100) (setq l (Cd100r   l)))
  (repeat (/ (setq n (rem n   100))   10) (setq l (Cd10r    l)))
  (repeat (/ (setq n (rem n    10))    4) (setq l (cddddr   l)))
  (repeat            (rem n     4)        (setq l (cdr      l)))
  l
)
; faster of member on long lists or short (1000 elements) if Item is near final position
(defun ALE_List_Member (i l)
  (ALE_List_NthCdr (vl-position i l) l)
)
;
(defun ALE_List_LastN (n l)
  (ALE_List_NthCdr (- (length l) n) l)
)
;
(defun First10 (l)
  (list
    (car l) (cadr l) (caddr l) (cadddr l) (cadddr (cdr l)) (cadddr (cddr l))
    (cadddr (cdddr l)) (cadddr (cddddr l)) (cadddr (cddddr (cdr l)))
    (cadddr (cddddr (cddr l)))
  )
)
;
(defun First09 (n l)
  (cond
    ( (eq 1 n) (list (car l))                                                )
    ( (eq 2 n) (list (car l) (cadr l))                                       )
    ( (eq 3 n) (list (car l) (cadr l) (caddr l))                             )
    ( (eq 4 n) (list (car l) (cadr l) (caddr l) (cadddr l))                  )
    ( (eq 5 n) (list (car l) (cadr l) (caddr l) (cadddr l) (cadddr (cdr l))) )
    ( (eq 6 n)
      (list (car l) (cadr l) (caddr l) (cadddr l) (cadddr (cdr l)) (cadddr (cddr l)))
    )
    ( (eq 7 n)
      (list
        (car l) (cadr l) (caddr l) (cadddr l) (cadddr (cdr l))
        (cadddr (cddr l)) (cadddr (cdddr l))
      )
    )
    ( (eq 8 n)
      (list
        (car l) (cadr l) (caddr l) (cadddr l) (cadddr (cdr l))
        (cadddr (cddr l)) (cadddr (cdddr l)) (cadddr (cddddr l))
      )
    )
    ( (eq 9 n)
      (list
        (car l) (cadr l) (caddr l) (cadddr l) (cadddr (cdr l)) (cadddr (cddr l))
        (cadddr (cdddr l)) (cadddr (cddddr l)) (cadddr (cddddr (cdr l)))
      )
    )
  )
)
(defun Cdr09 (n l)
  (cond
    ( (eq 1 n) (cdr l) )
    ( (eq 2 n) (cddr l) )
    ( (eq 3 n) (cdddr l) )
    ( (eq 4 n) (cddddr l) )
    ( (eq 5 n) (cddddr(cdr l)) )
    ( (eq 6 n) (cddddr(cddr l)) )
    ( (eq 7 n) (cddddr(cdddr l)) )
    ( (eq 8 n) (cddddr(cddddr l)) )
    ( (eq 9 n) (cddddr(cddddr(cdr l))) )
  )
)
;
(defun ALE_List_FirstN (n l)
  (reverse (ALE_List_NthCdr (- (length l) n) (reverse l)))
)
;
(defun ALE_List_Slice (n1 n2 l)
  (reverse (ALE_List_NthCdr (- (length l) n2 1) (reverse (ALE_List_NthCdr n1 l))))
)
;
(defun Cd10r (l)
  (cddddr(cddddr(cddr l)))
)
(defun Cd100r (l)
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr l)))))))))))))))))))))))))
)

(defun Cd10000r (l)
  (Cd1000r(Cd1000r(Cd1000r(Cd1000r(Cd1000r(Cd1000r
  (Cd1000r(Cd1000r(Cd1000r(Cd1000r l))))))))))
)

(defun Cd100000r (l)
  (Cd10000r(Cd10000r(Cd10000r(Cd10000r(Cd10000r(Cd10000r
  (Cd10000r(Cd10000r(Cd10000r(Cd10000r l))))))))))
)

(defun Cd1000r (l)
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr(cddddr(cddddr
  (cddddr(cddddr(cddddr(cddddr(cddddr l))))))))))))
  )))))))))))))))))))))))))))))))))))))))))))))))))
  )))))))))))))))))))))))))))))))))))))))))))))))))
  )))))))))))))))))))))))))))))))))))))))))))))))))
  )))))))))))))))))))))))))))))))))))))))))))))))))
  ))))))))))))))))))))))))))))))))))))))))))
)
;
(defun Cd10000r (l)
  (Cd1000r(Cd1000r(Cd1000r(Cd1000r(Cd1000r(Cd1000r
  (Cd1000r(Cd1000r(Cd1000r(Cd1000r l))))))))))
)

Grrr1337

  • Swamp Rat
  • Posts: 812
Re: (cdddddddddddddddr Lst)
« Reply #21 on: November 28, 2016, 04:46:21 AM »
Wow, you have an extraordinary memory. O.o All I remember of that post is that it faded into the ether rather quickly.  :-D
What can I say, I remember the stuff I don't understand. :D


If you like cdddddddddddddddddddr:
You have some nice list manipulation subfunctions!
And you reminded me that I could use an old trick:
Code: [Select]
(defun cdrn ( cdrStr Lst / d )
(repeat (- (strlen cdrStr) 2) (setq d (cons "d" d)))
(if (= cdrStr (strcat "c" (apply 'strcat d) "r"))
(progn
(repeat (length d) (setq Lst (cdr Lst)))
Lst
)
)
)
Code: [Select]
_$ (setq Lst (mapcar 'chr (vl-string->list "ABCDEFGHIJKLMNOPQ")))
("A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q")
_$ (cdrn "cdar" Lst)
nil
_$ (cdrn "cdr" Lst)
("B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q")
_$ (cdrn "cddr" Lst)
("C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q")
_$ (cdrn "cdddr" Lst)
("D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q")
_$ (cdrn "car" Lst)
nil
_$ (cdrn "a" Lst)
nil
_$ (cdrn "cddddddddddddddddr" Lst)
("Q")
_$ (cdrn "cdddddddddddddddr" Lst)
("P" "Q")
_$
(apply ''((a b c)(a b c))
  '(
    (( f L ) (apply 'strcat (f L)))
    (( L ) (if L (cons (chr (car L)) (f (cdr L)))))
    (72 101 108 108 111 32 87 111 114 108 100)
  )
)
vevo.bg

MP

  • Seagull
  • Posts: 17750
  • Have thousands of dwgs to process? Contact me.
Re: (cdddddddddddddddr Lst)
« Reply #22 on: November 28, 2016, 09:15:29 AM »
Wow, you have an extraordinary memory. O.o All I remember of that post is that it faded into the ether rather quickly.  :-D
What can I say, I remember the stuff I don't understand. :D

It's not meant to confuse tho I can appreciate the notion of a anonymous function that is not anonymous appears to be a conundrum. :lol: That said, once it's passed as an argument it's no longer anonymous.

Engineering Technologist • CAD Automation Practitioner
Automation ▸ Design ▸ Drafting ▸ Document Control ▸ Client
cadanalyst@gmail.comhttp://cadanalyst.slack.comhttp://linkedin.com/in/cadanalyst