在Lisp编程中返回值

问题描述 投票:0回答:1

我有功能

(defun read-as-list (filename)
	
	(defparameter parlist(list nil) )
	(let ((in (open filename :if-does-not-exist nil)))
  		(when in
    		(loop for line = (read-line in nil)
        		 while line do
        		 	(defparameter mylist line)
        		 	(push mylist (cdr (last parlist)))
        		 	;(append parlist (list mylist))
        		 	;(print mylist)
        			;(format t "~a~%" line)
        	)
    		(close in)
    	)
  	)
  	(print parlist)
  	(return-from read-as-list parlist)
)
它只是获取一个文件名并将其读入一个嵌套列表中并返回该列表我在down函数中称它为:

(defun test_on_test_data ()
	(print "....................................................")
	(print "Testing ....")
	(print "....................................................")
	
	(let (con (read-as-list "document1.txt"))
		(print con)
	)	
)

(test_on_test_data)
在test-on-test-data函数中,con输出nil,并且不调用read-as-list函数不厌其烦地将文件内容打印为列表,但不会打印出来。有人可以帮我这个忙。
lisp common-lisp return-value let clisp
1个回答
1
投票

这是一个示例函数,可用于测试如何遍历文件中的行。它需要一个路径名指示符和一个回调函数,并对文件中的所有行执行该函数。该函数必须接受一个参数,该行将被读取。

© www.soinside.com 2019 - 2024. All rights reserved.