问题标签 [first-class]

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 回答
99 浏览

generics - 在采用泛型类型参数的函数中使用的函数返回类型

所以我有这个代码:

但是在最后一行,我收到一个错误:Type ty not defined.

有什么建议么?

编辑:

或者可能是这样的:

我在想有什么方法可以恢复类型安全吗?

也许是这样的?

然后像这样使用它:

这在未定义 t 的最后一行抱怨。

基本上,我想要做的是能够返回这些不同的枚举,而无需将零和四包装到 DU 中。

0 投票
1 回答
204 浏览

function - 如何实现 typeOf 函数?

由于类型在 Idris 中是一等的,看来我应该能够编写一个typeOf返回其参数类型的函数:

然而,当我尝试调用这个函数时,我得到了一个看起来像错误的东西:

如何正确实现此typeOf功能?或者关于我缺少的“获取值的类型”的想法是否有更微妙的东西,这会阻止这样一个函数的存在?

0 投票
1 回答
312 浏览

module - OCAML first class modules signature inference

1) Suppose there is a module

2) and an explicit signature of this module

3) and i create a first-class module based on the above module and module type

4) Now i create another module with no explicit signature but same inferred signature as above

5) As written in Chapter 10 of the book Real World OCAML "The module type doesn't need to be part of the construction of a first-class module if it can be inferred", i try to create a second first class module using the above module but with no explicit module type

I get the following error

Error: The signature for this packaged module couldn't be inferred.

6) then i try to do the same as above in 5, but this time I put the first class module with no module type being create as an element of a list, where the head of the list is a first class module that was created out of an explicit signature in 3 above.

My question is why 5 above gives me an error and 6 does not fail ?

0 投票
0 回答
430 浏览

python - R中的第一类对象

就我而言,头等舱通常意味着:

  1. 可以存储在变量中
  2. 可以传递给函数或从函数返回
  3. 可以形成复杂的数据结构,如列表

因此,对于一切都是对象的 Python,一切都是一等公民。我对吗?甚至函数也是一等公民。

R呢?R中的一切都是一流的对象吗?还是有什么例外?

任何想法都会有所帮助。

0 投票
1 回答
155 浏览

recursion - OCaml:具有一流模块和存在类型的递归

我正在尝试制作一个交替使用两个模块(相同类型)的函数,同时更深入地进行递归。我将模块作为参数传递,当我向模块添加存在类型时,一切都出错了。让我有点吃惊的是,如果我使函数非递归(就像我发现的所有远程相似的示例一样),它就可以工作。

这是我认为的最小示例(仅传递一个模块):

示例的错误消息:

为什么它不起作用,我该怎么做才能使它起作用?

0 投票
3 回答
605 浏览

java - 将类存储在 Map 中,以便可以实例化它们

我希望能够根据HashMap条目创建类的实例。

例如,这就是我会尝试从头顶写下的内容:

但我强烈怀疑这在 Java 中不起作用。


我的情况:我想创建一种将String名称与类关联的方法。

用户可以通过使用其“名称”来创建类的实例。

我想尝试:制作名称到类的映射(我不知道如何在映射中存储类),并从映射中获取与“名称”匹配的项目,然后实例化它。

那是行不通的。


如何将类与String名称相关联并使用我给它的“名称”实例化这些类?

0 投票
1 回答
141 浏览

types - Ocaml 一流模块和扩展变体

我尝试通过实现这段代码来使用一流的模块:

我也会尝试这种替代方法,但我不知道如何在模块 S 中添加扩展类型 t_data :

我正在使用bucklescript,谢谢!

0 投票
3 回答
556 浏览

ruby - 将比较运算符作为参数传递给 Ruby 中的方法

将比较运算符作为参数传递给 Ruby 中的方法的最佳方法是什么?我想创建一个通用的排序?数组识别器,并将“<=”或“>=”传递给此方法。

到目前为止,我有这个代码:

– 似乎使用 sorted_generic?(comparison_operator) 方法而不是 sorted_increasing 会更好?和 sorted_decreating?

更新:感谢您的回复,我的解决方案如下:

0 投票
1 回答
81 浏览

typescript - `function`创建的`class`是什么类型的?

目标是在我的 TypeScript 代码中进行代码拆分。

我使用(实验性)装饰器来支持从模型到持久存储的类似 ORM 的数据映射。其中一种类型需要使用表名参数化装饰器,该表将存储该类型的实体。为了进行代码拆分,我已将域模型提取到单独的文件 ( entity-model.ts) 中:

当我以下列方式使用此文件时:

对于这两个函数 (handleEntityGroupfetchEntityGroup),TypeScript 报告以下错误:

[ts] Cannot find name 'EntityGroup'. [2304]

我不确定这种方法的正确性,我会寻找其他选项来进行代码拆分。但是作为该领域的初学者,我想回答以下问题:此示例代码中有什么?EntityGroup

谢谢你。

0 投票
3 回答
120 浏览

python - 如何在Python中按顺序打包作用于参数的序列函数

想象一下有三个函数,它们都接受并返回相同类型的参数。

通常我们可以写成fun3(fun2(fun1(args)),这可以说是一个序列函数按顺序作用于参数,类似于一种高阶函数“map”。

你知道在 Mathematica 中,我们可以把它写成fun3@fun2@fun1@args.

现在的问题是,我们是否可以在不修改其定义的情况下将 fun3@fun2@fun1 集成为另一个 fun,因此fun(args)可以替换fun3(fun2(fun1(args)),这样看起来更优雅简洁。