所以我最近自学了 lisp 并且一直在搞乱一些程序。我正在尝试编写一个小程序来比较用户输入的类列表并找出哪些可以一起工作。下面是第一部分,它从用户那里收集数据并创建一些班级时间的列表。
(defun class-entries ()
(setf Monday 0) ;initializes the days of the week
(setf Tuesday 0)
(setf Wednesday 0)
(setf Thursday 0)
(setf Friday 0)
(setf times 100)
(dotimes (repeating times "You have reached the limit of entries") ;repeats the following for the number of classes that you are comparing
(dolist (dayofweek '(Monday Tuesday Wednesday Thursday Friday)) ;repeats the following for each day of the week
(print (concatenate 'string "Does this class occur on " dayofweek " ?"))
(setf isday (read))
(if (= isday 1) ;prompts the questions if there is a class that day
(progn
(print (concatenate 'string "What time does the class begin on " dayofweek " ?"))
(setf starttime (read))
(print (concatenate 'string "What time does the class end on " dayofweek " ?"))
(setf endtime (read)))
(setf isday 0))
(if (= isday 0) ;Adds the list of (startime endtime) to the current day of week or nil if there isn't a class that day
(setf 'dayofweek '"nil")
(setf 'dayofweek '(starttime endtime))))
(print "What is the title of the class?")
(setf (read) '((mon (Monday)) (tues (Tuesday)) (wed (Wednesday)) (thurs (Thursday)) (fri (friday)))) ;sets a new variable to the values of the classes's hours
(print "Is there another class?") ;repeats the function for another class or ends it
(setf isclass (read))
(if (= isclass 0)
(setf times 0)
()))
(setf times 100)
)
当我评估该函数时,它只返回 0 并且没有其他内容出现。我不确定是不是因为我没有使用 Listener 还是什么。谢谢。