首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使UCI Lisp循环适应通用lisp

使UCI Lisp循环适应通用lisp
EN

Stack Overflow用户
提问于 2020-05-26 19:27:16
回答 1查看 46关注 0票数 0

嗨,我正在把下面的UCI lisp代码改编成普通的lisp。

这是原始函数:

代码语言:javascript
复制
(DE MATCH-ARGS (PAT-ARGS CONST BINDING-FORM)
  (LOOP ((INITIAL PAT-ARG NIL CONST-VAL NIL)
         (WHILE (SETQ PAT-ARG (POP PAT-ARGS)))
         (DO (SETQ CONST-VAL (FILLER:ROLE (ROLE:PAIR PAT-ARG) CONST)))
         (WHILE (SETQ BINDING-FORM
                      (MATCH (FILLER:PAIR PAT-ARG)
                             CONST-VAL
                             BINDING-FORM)))
         (RESULT BINDING-FORM]

这是我目前对它的改编:

代码语言:javascript
复制
(defun match-args  (pat-args const binding-form)
    (loop (initial pat-arg nil const-val nil)
          (while (setq pat-arg (pop pat-args)))
          do (setq const-val (filler/role (role/pair pat-arg) const))
          (while (setq binding-form
                    (match (filler/pair pat-arg)
                           const-val
                           binding-form)))
          (result binding-form)))

下面是它显示的错误:

代码语言:javascript
复制
*** - LOOP: illegal syntax near (INITIAL PAT-ARG NIL CONST-VAL NIL) in
       (LOOP (INITIAL PAT-ARG NIL CONST-VAL NIL) (WHILE (SETQ PAT-ARG (POP PAT-ARGS))) DO
        (SETQ CONST-VAL (FILLER/ROLE (ROLE/PAIR PAT-ARG) CONST))
        (WHILE (SETQ BINDING-FORM (MATCH (FILLER/PAIR PAT-ARG) CONST-VAL BINDING-FORM)))
        (RESULT BINDING-FORM))

请帮帮忙。匹配、填充/角色、填充/配对和角色/配对都是自定义函数。

EN

回答 1

Stack Overflow用户

发布于 2020-05-26 21:20:10

我会说它看起来像这样:

代码语言:javascript
复制
(defun match-args (pat-args const binding-form)
  (loop for pat-arg in pat-args
        for const-val = (filler/role (role/pair pat-arg) const)
        do (setq binding-form
                 (match (filler/pair pat-arg)
                   const-val
                   binding-form))
        while binding-form
        collect binding-form))

如果你能展示这些函数的源代码(或者至少是它们的协议)和输入参数示例,那就更好了。

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

https://stackoverflow.com/questions/62021113

复制
相关文章

相似问题

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