Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
1
Task/Deepcopy/PicoLisp/deepcopy-1.l
Normal file
1
Task/Deepcopy/PicoLisp/deepcopy-1.l
Normal file
|
|
@ -0,0 +1 @@
|
|||
(mapcar copy List)
|
||||
4
Task/Deepcopy/PicoLisp/deepcopy-2.l
Normal file
4
Task/Deepcopy/PicoLisp/deepcopy-2.l
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
(de deepCopy (X)
|
||||
(if (atom X)
|
||||
X
|
||||
(cons (deepCopy (car X)) (deepCopy (cdr X))) ) )
|
||||
25
Task/Deepcopy/PicoLisp/deepcopy-3.l
Normal file
25
Task/Deepcopy/PicoLisp/deepcopy-3.l
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
: (setq A '((a . b) (c d e) f g . e))
|
||||
-> ((a . b) (c d e) f g . e)
|
||||
|
||||
: (setq B (deepCopy A))
|
||||
-> ((a . b) (c d e) f g . e)
|
||||
|
||||
: A
|
||||
-> ((a . b) (c d e) f g . e)
|
||||
|
||||
: B
|
||||
-> ((a . b) (c d e) f g . e)
|
||||
|
||||
: (= A B)
|
||||
-> T # A and its copy B are structure-equal
|
||||
: (== A B)
|
||||
-> NIL # but they are not identical (pointer-equal)
|
||||
|
||||
: (cadr A)
|
||||
-> (c d e)
|
||||
|
||||
: (cadr B)
|
||||
-> (c d e)
|
||||
|
||||
: (== (cadr A) (cadr B))
|
||||
-> NIL # The same holds for sub-structures
|
||||
11
Task/Deepcopy/PicoLisp/deepcopy-4.l
Normal file
11
Task/Deepcopy/PicoLisp/deepcopy-4.l
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
(de deepCopy (X)
|
||||
(let Mark NIL
|
||||
(recur (X)
|
||||
(cond
|
||||
((atom X) X)
|
||||
((asoq X Mark) (cdr @))
|
||||
(T
|
||||
(prog1 (cons)
|
||||
(push 'Mark (cons X @))
|
||||
(set @ (recurse (car X)))
|
||||
(con @ (recurse (cdr X))) ) ) ) ) ) )
|
||||
12
Task/Deepcopy/PicoLisp/deepcopy-5.l
Normal file
12
Task/Deepcopy/PicoLisp/deepcopy-5.l
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
: (setq A '(a b .) B (deepCopy A))
|
||||
-> (a b .)
|
||||
: A
|
||||
-> (a b .)
|
||||
: B
|
||||
-> (a b .)
|
||||
|
||||
: (= A B)
|
||||
-> T # A and its copy B are structure-equal
|
||||
|
||||
: (== A B)
|
||||
-> NIL # but they are not identical (pointer-equal)
|
||||
Loading…
Add table
Add a link
Reference in a new issue