问题标签 [generic-function]

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 投票
5 回答
698 浏览

lisp - 尝试学习:LISP 中的对象重定向和泛型函数!

由于另一个问题,我正在阅读 Practical common Lisp 。

我刚刚阅读了第 16 章和第 17 章,您可以在其中了解 LISP 如何管理对象。但是经过几年思考 Java 如何管理对象后,我似乎无法真正理解如何使用 CLOS 在 LISP 中实现更大的体系结构。

因此,我要求你们阅读 20 到 50 页的关于 CLOS 应用于更大架构而不是简单示例的内容。也许是几篇博文,甚至是经验!

0 投票
1 回答
370 浏览

.net - 创建泛型函数的委托

我正在写一些单元测试,我有很多形式的功能

我用这样的各种论点反复打电话

我想做的是编写一个函数,它接受一个 Action 委托,并且可以使用所有不同的参数调用委托。有什么办法吗?

回答:

感谢 MichaelCG,这就是我最终做的事情:

我仍然对更通用的方法感兴趣,但这个方法对我的目的有用。

0 投票
3 回答
438 浏览

c++ - 编写一个简单的 STL 泛型函数的问题

我正在自学如何使用迭代器创建通用函数。作为 Hello World 步骤,我编写了一个函数来获取给定范围内的平均值并返回值:

我的第一个问题是:使用int计数器可以吗,如果数据太长会溢出吗?

我从以下测试工具中调用我的函数:

当我编译这个我得到错误:

谢谢!

0 投票
1 回答
1318 浏览

haskell - Haskell 中是否有任何通用的 Hashable 类型类?(又名“派生(可哈希)”)

有没有人写过一个通用函数,以便hash可以为自定义数据类型自动生成函数(使用deriving机制)?有几次,我写了以下样板,

这可以自动生成:基本思想是,无论何时添加数据,都乘以一个素数,例如使用列表,

本质上,我想写的是

编辑 1

感谢大家的所有非常有帮助的回复。当我有时间时,我会尝试添加一个通用方法作为练习。现在(也许 sclv 指的是什么?),我意识到我可以编写更好的代码,

编辑 2

使用 ghc,乘以随机素数比编辑 1 中的元组效果好得多。与 Data.HashTable 的冲突从 95%(非常糟糕)到 36%。代码在这里:[ http://pastebin.com/WD0Xp0T1 ] [ http://pastebin.com/Nd6cBy6G ]。

0 投票
2 回答
152 浏览

c# - 当使用“this”从基类调用时,泛型函数参数的参数类型是什么?

令人困惑的问题,我知道。鉴于以下情况:

以下代码产生有趣的输出:

但是,这与我预期的一样:

谁能帮我理解导致 T 在第一种情况下被评估为 BaseType 的机制?

提前致谢!

0 投票
3 回答
255 浏览

sql - 为什么不单独实例化 Func谓词不使用实体框架转换为 SQL?

我有一个用于查询数据库的 EF Code First Db 上下文。当从我的聚合存储库中以 s 的形式传递查询时,我注意到一些性能问题,Func<Product, bool>并且在进一步调查时发现查询没有被转换为 SQL 查询。

经过一番挖掘,我发现了以下内容。

这完全符合预期。它生成一些带有 Where 子句的参数化 SQL。

==================================================== =================

这也按预期工作。它生成与上面相同的sql

==================================================== =================

这是坏了。它不会在 SQL 中生成 where 子句,而是返回所有内容,然后在代码中对其进行过滤。

0 投票
1 回答
93 浏览

.net - Negative effects of using a generic function like this?

My question here is, what are the negative effects of using a generic function such as this? Calling this function does work, and in a test console module, it compiles perfectly fine. I do know this is not a strongly typed function, and is %100 bad practice. But it works... perfectly. The purpose of a function like this, would be to handle string input that needs to be inserted in a particular format depending on the type. I also read some other questions on this here on stackoverflow, and suggestions pointed to using (Of T) functions, and variations like that. Why not do it this way? or is there another simple way of accomplishing this without creating a whole nothing class or larger amounts of code. I know this isn't the "elegant" way of handling this either, so if anyone has suggestions, I'm all ears. Thank you! :)

0 投票
1 回答
2007 浏览

c# - C# 泛型和泛型约束

我正在编写一个带有类型参数 T 的通用抽象类 A,我打算用类 B 派生它。

A 有一个数据成员 mX,它是类 C 的一个实例,带有一个通用函数。这个通用函数 GetAllOfType() 有一个类型参数 T。这个类型参数被限制到第三个类 D。GetAllOfType() 搜索 D 实例的容器,其中包括 D 的派生类的实例,并返回T 类型的子集(因此对 D 的约束)。

D 类本身没有特定的数据成员 int mY,但 D 的某些派生类有,例如 E 和 F。

所以这是我的问题开始的地方:

B 类用于继承和实现 A 类的参数类型是 D 的派生类。我正在尝试在 A 类中编写一个函数 Foo,该函数通过 GetAllOfType() 枚举并访问 E、F 或任何其他类型的成员 mY有一个 myY 的成员。

但是,问题是 GetAllOfType() 受到约束,并且我也因未约束 A 类而收到错误消息。

我试过像这样约束 A :

但是我遇到了编译时错误:

键入T' does not contain a definition formY' 并且找不到扩展方法mY' of typeT'(您是否缺少 using 指令或程序集引用?)

我还尝试限制到多个派生类:

但是我也遇到了以下错误:

类类型约束“F”必须列在任何其他约束之前。考虑将类型约束移动到约束列表的开头

我试过切换它们:

同样,结果是相同的错误,但将 F 切换为 E。

我正在尝试的可能吗?我究竟做错了什么?

同样,我无法更改 C、D、E 和 F 类的任何内容。

0 投票
1 回答
1839 浏览

r - 'show' 是一个普通的 S4 通用函数吗?

我正在尝试为我的类创建一个方法,该方法继承自 data.frame。我最初希望也能从 data.frame 继承“show”方法,但我也可以自己编写。我定义了我的类和“显示”方法如下:

当我show在 R 控制台中输入时,它会打印出:

从包“methods”定义的“show”的标准泛型

所以看起来我不需要自己使用 StandardGeneric() 将它变成泛型。但是当我运行我的setMethod("show", signature(x="SCvec"), function(x) print(x))线路时,我得到了错误

我已经定义了这个方法,就像我定义任何其他方法一样。为什么这个方法定义不起作用?“显示”与其他通用功能不同吗?

0 投票
2 回答
1096 浏览

types - Common Lisp:专门研究数组长度的泛型函数

我刚刚开始使用通用函数,想知道这是否可能(我真的希望如此!)。

我制作了 3 个包来处理不同长度的向量:vector2、vector3vector4

每个包都有处理该长度向量的函数:

我的向量是类型化数组(用于速度和内存使用,因为这是用于编写游戏)所以vector3是:

现在我正在编写一个名为vectors的包,它将包含处理任何向量类型的通用函数。

所以传递 vector:normalize a vector3应该返回一个vector3等等。

我试过这个:

...基于我在问题 6083238中看到的内容,但显然只专注于简单的单浮点数组:

考虑到它需要快速且不占用内存,这样做的最佳方法是什么?

提前干杯!