リストを文字列に連結する関数を書く必要があります。例:ここ
(concatString(引用符( "hello" を "世界")))==> "Hello World" の文字列のリストを連結するlisp関数
は私がこれまで持っているものです。
(defun concatString (list)
"A non-recursive function that concatenates a list of strings."
(cond
((not (listp list))
(princ "Error: argument to concatNR must be a list")(terpri)())) ; check if parameter is a list
(if (not (null list)) ;check if list is not null
(let ((result (car list)))
(dolist (item (cdr list))
(if (stringp item)
(setq result (concatenate result item)))
)
)
)
)
私は取得しています「エラー:「hello」は不正な型指定子です」というメッセージが表示されます。私はこの機能を変更する方法の束を試してみました。私はそれを理解することができませんでした。誰にもアイデアはありますか?
Imは文字列かどうかを検査します。なぜなら、代入のために数値であれば文字列に追加すべきではないからです。修正がうまくいってくれてありがとう、ありがとう! =) – MBU
これは比較的悪いことです。常に新しい結果文字列を繰り返し作成して連結しています。これにより多量のゴミが発生する可能性があります。 –
@Rainer Joswigどうすれば修正できますか? –