【问题标题】:I need to this function to sum the number of unlimiited paramters我需要这个函数来总结无限参数的数量
【发布时间】:2021-04-01 01:45:08
【问题描述】:

我正在学习 ELISP,这个函数应该收集任意数量的参数加上 N 并返回总和。这是我到目前为止所得到的,我无法弄清楚我的错误在哪里谢谢。此外,如果 char 在列表中,它应该跳过而不将其添加到值中。我正在使用 ELISP

(defun sum-numbers (n &rest L)
  (let (a 0)
    (if (not L) n
      (dolist (x L result)
    (if (integerp x)
        (setq a (+ x a)))))
    (setq a (+ a n))))

【问题讨论】:

    标签: elisp


    【解决方案1】:

    您错误地使用了let

    可能还有其他错误,但由于缩进损坏,您的代码无法阅读。在每一行上点击TAB 以获得正确的缩进。

    【讨论】:

    • 或标记整个区域,然后按一次TAB 一次缩进整个区域。然后:M-x untabify 将制表符转换为空格。然后您可以复制并粘贴回 S.O.
    【解决方案2】:

    更正:

     (defun sum-numbers (n &rest L)
    -  (let (a 0)
    +  (let ((a 0))
         (if (not L)
             n
    -      (dolist (x L result)
    +      (dolist (x L (+ a n))
             (if (integerp x)
    -            (setq a (+ x a)))))
    -    (setq a (+ a n))))
    +            (setq a (+ x a)))))))
    

    (在学习之外,您只需使用 +,它已经对任意数量的参数求和。)

    【讨论】:

      猜你喜欢
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 2021-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多