Hi Dean,
> Is this the best way of automatically generating a list of ("aaaa" "bbbb"
> etc.
No ;)
> (de mk_Ltest_data (Start_x Eles Ele_chars)
> (setq L (range Start_x (- (+ Start_x Eles) 1)))
> (setq L2 (mapcar 'char L))
> (setq L3 NIL)
> (for X (range 1 Ele_chars)
> (setq L3 (append L3 L2)) )
> (setq L4 (sort L3))
> (setq L5 (by name group L4))
> (setq L6 (mapcar 'pack L5)) )
-- The variables 'L', 'L2' etc are not bound locally. 'lint' complains:
: (lint 'mk_Ltest_data)
-> ((bnd L6 L4 L3 L2 L) (use X))
-- 'char' should not be quoted for the 'mapcar'.
-- (for X (range 1 Ele_chars) ..) would be (do Ele_chars ..)
In general I would not use 'range' just to get a loop.
Better (for X Start_x ... but only if 'X' is really needed.
-- You are doing excessive 'setq's. Normal PicoLisp programs
almost never use 'setq'.
I would write the above function as:
(de mk_Ltest_data (Start_x Eles Ele_chars)
(make
(do Eles
(link
(pack (need Ele_chars (char Start_x))) )
(inc 'Start_x) ) ) )
(msg (mk_Ltest_data 97 26 4))
♪♫ Alex
--
UNSUBSCRIBE: mailto:[email protected]?subject=Unsubscribe