Tôi cần phải viết một hàm sẽ nối một danh sách thành một chuỗi. Ví dụ:
(concatString (quote ("hello" "thế giới"))) ==> "hello world"chức năng lisp để nối một danh sách các chuỗi
đây là những gì tôi có cho đến nay:
(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)))
)
)
)
)
Tôi nhận được một Thông báo "Lỗi:" hello "là và loại thông số bất hợp pháp" khi tôi cố gắng chạy nó. Tôi đã thử một loạt các cách để sửa đổi chức năng này và tôi havent đã có thể tìm ra nó. Có ai có ý tưởng nào?
Im kiểm tra xem chuỗi của nó có phải vì gán hay không, nếu số của nó không được thêm vào chuỗi. Cảm ơn bạn rất nhiều mặc dù sửa chữa đã làm việc !!! =) – MBU
Đó là tương đối xấu: bạn đang nối nhiều lần tạo chuỗi kết quả mới mọi lúc. Điều này có thể tạo ra một lượng rác lớn. –
@Rainer Joswig Tôi có thể sửa chữa nó bằng cách nào? –