问题标签 [arity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
454 浏览

vector - 什么是 m 元向量?

我正在观看关于线程的讲座,他们使用以下术语m-ary vector

这是什么?arity是长度吗?我认为向量只是像数组一样的顺序数据结构?为什么要m使用这封信——我以前只见n-ary过。

0 投票
1 回答
1701 浏览

java - 使用 Java 反射调用可变参数方法?

我想了解使用 Java 反射调用可变参数方法可能会发生什么。假设我们有一个简单的方法:

而我们想要动态调用它,所以我们通过反射来获取方法:

并传入一个数组:

现在,这似乎不像我的直觉所想的那样起作用。IllegalArgumentException特别是,当我尝试使用这样的可变参数调用方法时,我似乎得到了各种各样的阴影。

很明显,我在这里缺少一些东西。我的猜测是这在某种程度上与变量如何编组到可变参数中有关。我发现这篇已有四年历史的博客文章似乎在谈论同样的问题,但无法重现那里的“成功”案例。对这里可能发生的事情有任何想法吗?

0 投票
2 回答
955 浏览

function - 控制函数的arity

我正在阅读这个问题的答案:Haskell:. (点)和$(美元符号)我的回答很奇怪……他的意思是+没有输入?然后我尝试了:

哎呀……不幸的消息。但我确信我看到的函数可以接受看似任意的或大量的参数,以相信有人以 a->b->c...->z 的方式定义了它们。一定有办法处理!我正在寻找的是 CL 中的 &rest 或 &optional 之类的东西。

0 投票
1 回答
576 浏览

map - erlang映射函数

我是 Erlang 的新手,所以请原谅我的幼稚。

我正在尝试重写我用其他语言编写的函数。其中之一是 Jaccard 位索引。

在 python haskell 和 clojure 中,它的工作方式如下:

我认为我的问题是我只知道 Erlang 的

map(Fun, List1) -> List2

并且每次我在使用类似于以下内容之前完成它:

map(Fun, List1, List2) -> List3

0 投票
1 回答
1594 浏览

clojure - 如果需要,clojure 可以评估一系列混合的 arity 函数并返回部分函数吗?

假设您具有以下三个函数,即 arity 1、2 和 3:

clojure 是否有评估函数或习语来评估:

返回 arity 2 的偏函数?

我正在考虑创建一个宏,它可以采用上面的简单函数定义并将它们扩展为可以返回部分结果的多参数函数。如果已经有内置或惯用的方法来完成此操作,我不想创建宏。

以下是扩展宏对上述功能的要求:

0 投票
2 回答
539 浏览

haskell - 由于柯里化,arity-n 的函数真的只是一个 n 类吗?可以做成 1 类吗?

这个问题有一个很长的前奏,然后我才能真正问出来:)

假设类型 A 和 B 代表类别,那么函数

f :: B -> A

是两个范畴之间的态射。我们可以创建一个新类别,其中 A 和 B 作为对象,f 作为箭头,如下所示:

在此处输入图像描述

现在,让我们引入一个新的类别 C 和函数 g:

g :: C -> B -> A

我希望能够将 C 和 g 添加到我上面的类别中,但我不确定该怎么做。直观地说,我想要这样的东西:

在此处输入图像描述

但我以前从未在类别图中看到过类似的东西。为了使这个洁净,我可以引入一个虚拟箭头 g' 并构造一个像这样的 2 类:

在此处输入图像描述

但这似乎是一个迟钝的画面。(当然,我们可以使用我上面画的图片作为正确图片的简写。)而且,现在也不完全清楚 g 和 g' 到底是什么。g 不再是一个将类别 C 作为输入并返回态射 :: B -> A 的函数。相反,

g' :: (C -> C)

g :: (C -> C) -> (B -> A)

如果我们通过 g 身份,那么一切都会正常工作。但是如果我们给它传递一些其他函数,那么谁知道会发生什么?

所以我的问题是:n 类别中的 n 箭头真的是我们应该考虑具有 arity n 的函数的方式吗?还是有一些更简单的方法可以将此功能表示为我错过的标准类别?

0 投票
1 回答
884 浏览

clojure - 在clojure的代理中覆盖多参数方法

我有一个 java 类,它有 2 个方法具有相同但不同的参数(一个不带参数,另一个带 1 个参数)。我创建了一个覆盖这两种方法的代理。问题是,如果从这个 java 类调用无参数方法 - 调用基本实现而不是代理。但是,如果我直接在 obj 上调用无参数方法 - 将调用正确的代理方法。有人可以解释这种行为吗?

测试.java:

运行.clj:

输出:

预期输出:

0 投票
2 回答
433 浏览

ruby - Arity of method delegated with method_missing

When I delegate methods on instances of class A to $delegation_target as below:

the arity of the methods on instances of A returns -1 irrespective of the arity of the methods on $delegation_target:

Where does this -1 come from? And, is there a way to make it so that, for any possible method name m, A.new.method(m).arity returns the arity of $delegation_target.method(m) (if it is defined)?

0 投票
2 回答
631 浏览

wolfram-mathematica - Mathematica 嵌套匿名变量 Arity 函数

我正在尝试将以下方案代码转换为 Mathematica(版本 8,如果重要的话):

然后,您可以执行以下操作:

该部分(add (square sin) (square cos))创建一个函数x -> sin^2(x) + cos^2(x)

无论如何,我尝试在 Mathematica 中对此进行编码,但我似乎无法走得太远。这是我想写的:

我想要fs__并且args__被绑定到它们各自函数的所有参数的列表中。但随后 Mathematica 抱怨“参数规范”Function应该是“一个符号或符号列表”。我知道我可以使用()&样式匿名函数并使用##来获取所有参数,但问题是当我嵌套其中两个匿名函数时,我失去了从内部函数访问外部参数的能力。

如何编写具有可变参数(和命名参数)的匿名函数?还是我应该在 Mathematica 中以另一种方式解决这个问题?

0 投票
1 回答
268 浏览

javascript - 您如何在严格模式下找到匿名函数的数量?

遵循jQuery 插件模式methods.myfunc,如果我们使用 apply() 来定义this 和应用于this 的范围,如何找到函数的元数,比如函数arguments

这可能会暴露我对函数范围的一些无知,但我在这里很困惑,并且没有找到一个足够好的例子来解释这一点。

我对这个问题的部分灵感来自 NodeJS/ExpressJS,它们为某些函数提供了可变数量的参数。例如,如果传递了 3 个参数,则假定存在错误对象,但您也可以轻松传递两个参数,这没有问题!

更新:将代码中的函数从 init 更改为 myfunc