Lisp的暂停与while的特殊使用

   2020-04-20 186
核心提示:[db:简介]
   Lisp一般在交互输入时才会暂停,如果只需要实现屏幕显示暂停,可使用grread函数,grread函数对所有合法的输入设备均会作出反应,有时我们只希望对键盘有反应,可使用while函数进行循环。

*******************
    (princ "nPress ENTER to continue:")
    (while (/= (car (grread)) 2))
*******************

    while用于满足一定条件的循环,其标准语法为:
    (while testexpr [expr...])
    其中expr解释为“在 testexpr 为 nil 之前要求值的一个或多个表达式”,为可选项(在R14之前没有方括号,但仍为可选项)。
    正常我们使用while时,总会有expr项,更多的时候,我们是为了expr项才会使用这种循环语句,所有我们往往有expr项是不可缺少的感觉。这里我们使用while函数的语法是while函数的特例,即没有expr项的情况。
    如果希望对鼠标右键同时反应,可以使用:

*******************
    (princ "nPress ENTER to continue:")
    (while (and (/= (setq a(car (grread))) 2)     ;键盘
                (/= a 11)                         ;鼠标右键(SHORTCUTMENU=0)
                (/= a 25)                         ;鼠标右键(SHORTCUTMENU≠0)
           )
    )
*******************
 
举报收藏 0打赏 0
 
更多>同类数控技术
推荐图文
推荐数控技术
点击排行
网站首页  |  关于我们  |  升级会员  |  联系客服  |  广告合作  |  广告位图  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  RSS订阅  |  违规举报  |  蜀ICP备2021024440号