Coding style 什么';调用具有多个参数的函数的惯用方法是什么?

Coding style 什么';调用具有多个参数的函数的惯用方法是什么?,coding-style,lisp,Coding Style,Lisp,在Lisp(任何Lisp方言都可以)中,用多个参数调用函数的惯用方法是什么 我指的是超过80个字符的限制 假设我们有一个名为foo func的示例函数,该函数接受可变数量的参数 (foo-func 'foo 'bar 'baz 'qux 'foo-bar 'foo-baz 'foo-qux 'bar-foo 'bar-baz 'you-get-the-idea) 如果不是在一条不可理解的长线上,人们通常会如何安排ARG 注意这不是关于个人偏好的问题,而是关于建议如何做的问题通常情况下,会这样排

在Lisp(任何Lisp方言都可以)中,用多个参数调用函数的惯用方法是什么

我指的是超过80个字符的限制

假设我们有一个名为
foo func
的示例函数,该函数接受可变数量的参数

(foo-func 'foo 'bar 'baz 'qux 'foo-bar 'foo-baz 'foo-qux 'bar-foo 'bar-baz 'you-get-the-idea)
如果不是在一条不可理解的长线上,人们通常会如何安排ARG


注意这不是关于个人偏好的问题,而是关于建议如何做的问题

通常情况下,会这样排列:

(foo-func 'foo
          'bar
          'baz
          'qux
          'foo-bar
          'foo-baz
          'foo-qux
          'bar-foo
          'bar-baz
          'you-get-the-idea)
在某些情况下,您可能会将多个属于同一行的参数放在一起:

(foo-func 'foo
          'bar
          'baz
          'qux
          'foo-bar 'foo-baz 'foo-qux
          'bar-foo 'bar-baz
          'you-get-the-idea)
(foo-func 'foo 'bar 'baz 'qux
          :barista 'foo-bar
          :bazaar 'foo-baz
          :quxfrog 'foo-qux
          :baroofa 'bar-foo
          :barazza 'bar-baz
          :say-what 'you-get-the-idea)
但是,任何具有多个参数的函数通常会大量使用关键字参数:

(foo-func 'foo
          'bar
          'baz
          'qux
          :barista 'foo-bar
          :bazaar 'foo-baz
          :quxfrog 'foo-qux
          :baroofa 'bar-foo
          :barazza 'bar-baz
          :say-what 'you-get-the-idea)
在这里,您可以将所需的参数放在一行:

(foo-func 'foo
          'bar
          'baz
          'qux
          'foo-bar 'foo-baz 'foo-qux
          'bar-foo 'bar-baz
          'you-get-the-idea)
(foo-func 'foo 'bar 'baz 'qux
          :barista 'foo-bar
          :bazaar 'foo-baz
          :quxfrog 'foo-qux
          :baroofa 'bar-foo
          :barazza 'bar-baz
          :say-what 'you-get-the-idea)

另外,如果你有一个有11个参数的函数,你很可能是做错了。@Xach一个必需的参数和5个关键字参数很容易导致传递给函数的11个“参数”,对于某些类型的构造函数来说,这并不都是不合理的。但是,是的,如果这些都是必需的参数,一些东西可能应该被重构。我知道OP已经接受了答案。但是他说这个函数接受的参数数量是可变的。也许他需要一份清单。或者
(define(foo.args)args)
@Rptx答案是一样的,因为他问的是编码风格(如何在调用时不在一行上),而不是如何在定义中包含可变数量的参数。@Xach我知道如果有11个arg,则可能编码错误,但我在emacs配置中使用了这个可变的便利函数,我只是在前进的过程中添加一些东西;与使用不同的参数编写另一行重复的代码相比,干代码毕竟更不容易出错。所以这个问题