首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lisp -从输入读取和存储2个值

Lisp -从输入读取和存储2个值
EN

Stack Overflow用户
提问于 2011-12-01 00:31:31
回答 1查看 1.9K关注 0票数 1

我想使用lisp从用户输入中读取2个值。我希望将它们存储在变量中,以便在我的程序中使用它们。

到目前为止,我已经有了当前代码:

代码语言:javascript
复制
(defun le-posicao()
  (let ((n_anel) 
        (pos_anel))
    (princ "?")
    (setf n_anel (read))
    (setf pos_anel (read))
    (when (and (integerp (n_anel)) (integerp (pos_anel)))
          n_anel pos_anel)))

我使用let函数创建局部变量,然后将从输入中读取的值存储在其中。

我的问题是,如何从输入中读取两个值,并将第一个值存储在一个变量中,将第二个值存储在另一个变量中?这些值应采用以下格式:

代码语言:javascript
复制
? value1 value2

有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-01 00:42:36

您正在尝试强制使用Lisp。虽然这是可能的,但可能会有一点痛苦。

要使您的代码更具功能性,您应该创建名称并将值绑定到它们,而不是创建变量,然后对它们进行变异。

需要说明的是,let是一种特殊的形式,而不是一个函数;它们用于创建名称到值的词法范围绑定。

我相信你真正想做的是:

代码语言:javascript
复制
(let ((n_anel (read))
      (pos_anel (read)))
  (... code using but not modifying n_anel and pos_anel ...))

这段代码避免了setf

备注:

不确定Common-Lisp的let中的括号--我最近一直在使用Clojure!

我也不确定你是否正确使用了read

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8329404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档