FastFiber

STANDAARD lisp-functie om een list van strings aan elkaar te plakken? (OPGELOST)

Gestart door roy_043, do 18 06 2009, 14:36:25

Vorige topic - Volgende topic

roy_043

Beste forumleden,

Ik meen mij te herinneren dat er een STANDAARD lisp-functie is om een list van strings aan elkaar te plakken. Maar welke is dat ook alweer? Of haal ik dingen door elkaar?

Groet, Roy.

HofCAD

Citaat van: roy_043 op do 18 06 2009, 14:36:25
Beste forumleden,

Ik meen mij te herinneren dat er een STANDAARD lisp-functie is om een list van strings aan elkaar te plakken. Maar welke is dat ook alweer? Of haal ik dingen door elkaar?

Groet, Roy.

Beste Roy,

Er is geen  STANDAARD lisp-functie is om een list van strings aan elkaar te plakken.
Er is er wel een om twee strings aan elkaar te plakken:
strcat
Returns a string that is the concatenation of multiple strings
(strcat [string[string]...])
Arguments string: A string.
Return Values: A string.
If no arguments are supplied, strcat returns a zero-length string.

Maar:
(defun strlist->str (LiStr / Str MLiStr)
 (setq Str "")
 (foreach MLiStr LiStr
   (progn
     (setq Str (strcat Str MLiStr))
   )
 )
)

(strlist->str '("0" "1" "2" "3" "4" "5"))

Met vriendelijke groet, HofCAD CSI.
ACADcadabra

roy_043

Beste HofCAD,

Bedankt. Ik had zelf al iets vergelijkbaars bedacht:


;;; ...
;;; LET OP: lisp-segment:
(setq
intNamesLst (car (BasicBlockListNamesIntListNamesExt)) ; intNamesLst bevat lijst met namen van niet-xref-blocks
intNamesStr (nth 0 intNamesLst)
i 1
)
(repeat (- (length intNamesLst) 1)
(setq
intNamesStr (strcat intNamesStr "," (nth i intNamesLst))
i (1+ i)
)
)
;;; ...


Groet, Roy.

roy_043

Citaat van: roy_043 op do 18 06 2009, 14:36:25Of haal ik dingen door elkaar?
Waarschijnlijk zat ik aan de JavaScript methode JOIN te denken.

Groet, Roy.

FastFiber