我正在审阅各种语言的课程,我们正在用Lisp构建文本解析器。我可以让我的Lisp程序用数字做很多不同的功能,但我正在努力处理文本。我只想偷看一行中的第一个字符,看看它是否包含<然后做一些事情,但我似乎无法弄清楚如何去做这个简单的任务。这是我简单的小码迄今:LISP If语句 - 解析文本文件
;;;Sets up the y.xml file for use
(setq file (open "c:\\temp\\y.xml"))
;;;Just reads one line at a time, (jkk file)
(defun jkk (x)
(read-line x)
)
;;;Reads the entire file printing each line, (loopfile file)
(defun loopfile (x)
(loop for line = (read-line x nil)
while line do (print line))
)
接下来的这个部分我试图循环利用相结合if语句,看它是否能找到“<”如果是只打印该行并跳过它没有按任何其他没有工作。任何帮助完成这个非常简单的任务将不胜感激。以前从未使用Lisp或任何其他函数式语言,我习惯于在VB和Java项目中使用疯狂的函数,但我没有任何像样的Lisp参考资料。
完成这个程序后,我们不必再与Lisp混淆了,所以我不打扰任何事情。尝试谷歌图书...开始想出来的东西,但这种语言是古老而艰难的!
;;;Reads the entire file printing the line when < is found
(defun loopfile_xml (x)
(loop for line = (read-line x nil)
while line do
(
if(char= line "<")
(print line)
)
)
)
谢谢你们
我认为最好能在班上提出这样的问题。 –