UPC: Difference between revisions
Content added Content deleted
SqrtNegInf (talk | contribs) m (→{{header|Perl}}: tweaks) |
(add PicoLisp) |
||
Line 489: | Line 489: | ||
{7,0,6,4,6,6,7,4,3,0,3,0} |
{7,0,6,4,6,6,7,4,3,0,3,0} |
||
{6,5,3,4,8,3,5,4,0,4,3,5} |
{6,5,3,4,8,3,5,4,0,4,3,5} |
||
</pre> |
|||
=={{header|PicoLisp}}== |
|||
<lang PicoLisp>(de l2n (Lst) |
|||
(case Lst |
|||
((0 0 0 1 1 0 1) 0) |
|||
((0 0 1 1 0 0 1) 1) |
|||
((0 0 1 0 0 1 1) 2) |
|||
((0 1 1 1 1 0 1) 3) |
|||
((0 1 0 0 0 1 1) 4) |
|||
((0 1 1 0 0 0 1) 5) |
|||
((0 1 0 1 1 1 1) 6) |
|||
((0 1 1 1 0 1 1) 7) |
|||
((0 1 1 0 1 1 1) 8) |
|||
((0 0 0 1 0 1 1) 9) ) ) |
|||
(de convs (Lst Flg) |
|||
(make |
|||
(for L Lst |
|||
(link |
|||
(if2 (= "#" L) Flg 0 1 1 0) ) ) ) ) |
|||
(de getL (Lst) |
|||
(make |
|||
(cut 3 'Lst) |
|||
(do 6 |
|||
(link (convs (cut 7 'Lst))) ) |
|||
(cut 5 'Lst) |
|||
(do 6 |
|||
(link (convs (cut 7 'Lst) T)) ) ) ) |
|||
(de parse (Str) |
|||
(let Lst |
|||
(make |
|||
(link (clip (chop Str))) |
|||
(link (reverse (car (made)))) ) |
|||
(find |
|||
'((N) (fully num? N)) |
|||
(mapcar '((L) (mapcar l2n (getL L))) Lst) ) ) ) |
|||
(de upc (Str) |
|||
(let Lst (parse Str) |
|||
(cons |
|||
Lst |
|||
(% |
|||
(apply + (mapcar * Lst (circ 3 1))) |
|||
10 ) ) ) ) |
|||
(setq *U |
|||
(quote |
|||
" # # # ## # ## # ## ### ## ### ## #### # # # ## ## # # ## ## ### # ## ## ### # # # " |
|||
" # # # ## ## # #### # # ## # ## # ## # # # ### # ### ## ## ### # # ### ### # # # " |
|||
" # # # # # ### # # # # # # # # # # ## # ## # ## # ## # # #### ### ## # # " |
|||
" # # ## ## ## ## # # # # ### # ## ## # # # ## ## # ### ## ## # # #### ## # # # " |
|||
" # # ### ## # ## ## ### ## # ## # # ## # # ### # ## ## # # ### # ## ## # # # " |
|||
" # # # # ## ## # # # # ## ## # # # # # #### # ## # #### #### # # ## # #### # # " |
|||
" # # # ## ## # # ## ## # ### ## ## # # # # # # # # ### # # ### # # # # # " |
|||
" # # # # ## ## # # ## ## ### # # # # # ### ## ## ### ## ### ### ## # ## ### ## # # " |
|||
" # # ### ## ## # # #### # ## # #### # #### # # # # # ### # # ### # # # ### # # # " |
|||
" # # # #### ## # #### # # ## ## ### #### # # # # ### # ### ### # # ### # # # ### # # " ) ) |
|||
(for L (mapcar upc *U) |
|||
(println (if (car L) @ 'invalid)) )</lang> |
|||
{{out}} |
|||
<pre> |
|||
(9 2 4 7 7 3 2 7 1 0 1 9) |
|||
(4 0 3 9 4 4 4 4 1 0 5 0) |
|||
(8 3 4 9 9 9 6 7 6 7 0 6) |
|||
(9 3 9 8 2 5 1 5 8 8 1 1) |
|||
invalid |
|||
(3 1 6 3 1 3 7 1 8 7 1 7) |
|||
(2 1 4 5 7 5 8 7 5 6 0 8) |
|||
(8 1 8 7 7 8 8 4 1 8 1 3) |
|||
(7 0 6 4 6 6 7 4 3 0 3 0) |
|||
(6 5 3 4 8 3 5 4 0 4 3 5) |
|||
</pre> |
</pre> |
||