问题标签 [nim-lang]

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

nimrod - Tuples without field names

I noticed I can declare tuples in nimrod without giving names for each filed. For example:

But this doesn't apply for the last filed

Why is that? Is this intended? Why should the last field always be named?

0 投票
1 回答
495 浏览

nimrod - Nimrod 初学者 - Fizzbuzz - 编译和运行

我尝试编写编译和运行我的第一个 nimrod 程序的 fizzbuzz。

Nimrod 是从 git 安装的,版本是。

所以这是一个嘶嘶声

我编译为 c (有更好的选择吗?),对我来说似乎没问题。

但是运行它不会产生任何输出。有什么我做错了吗?

0 投票
1 回答
2827 浏览

nimrod - 如何在 Nimrod 中使用函数指针?

是否可以在 Nimrod 中使用函数指针?

我试过的是:

但是当我尝试编译时,我得到:

0 投票
5 回答
7735 浏览

c++ - 如何使用 C++11 风格的强类型定义创建新的原始类型?

我试图在 C++ 中模拟与Nim 编程语言不同的类型。以下示例不会在 Nim 中编译,因为编译器会捕获变量并 具有不同的类型 ( ),尽管它们都是二进制级别的浮点数:edError: type mismatch: got (Euros, float)

在 C++ 中执行此操作的一种方法是为浮点数编写一个包装类。但这不适用于导出类型的 API,因为大小与浮点数不同。或者即使一个类的大小与浮点数的存储长度相匹配,它也永远不会与 char 类型的大小相匹配。如果您还为加法、减法等操作实现所有可能的运算符,这将起作用,但需要大量输入和重复代码。

诸如创建新的原始类型之类的较旧问题 已作为使用 boost 的强 typedef 的公认答案。然而 typedef 似乎只适用于函数类型签名, typedef 不会阻止将两个浮点继承类型添加在一起并且它们的类型完全改变(嗯,因为只是一种新类型的错觉):

但这差不多了,test()调用将不起作用,因为签名不匹配,但是该语言仍然允许其他操作随意破坏类型。

同样的答案提到 C++0x 带来了强大的 typedef,所以我寻找这个新的支持,发现Bjarne Stroustrup 本人在 2012 年发表了 C++11 风格的主题演讲。大约在第 21 分钟,他开始谈论这些新的强类型定义。如果您只下载幻灯片,第 19 页开始讨论SI 单位,稍后第 22 页和第 23 页提到如何做到这一点。但是,我无法使这些示例正常工作。这是我设法编造的拼凑而成:

我正在尝试在 MacOSX 下使用最新的 Xcode 5.1.1 使用命令行编译它:

也许幻灯片中给出的例子,我错过了更多的代码?有人有一个完整的例子来说明 Bjarne 试图展示的内容吗?

0 投票
1 回答
879 浏览

nim-lang - Nim:包含 Posix 的 C 标头

我正在尝试使用 Nim Posix 库,特别是文件系统统计信息:

http://nim-lang.org/docs/posix.html#Stat

根据我对其他 Nim 模块的测试,导入和使用应该是这样的:

但是编译器给了我一个

编译时是否必须添加一些手动包含,或者我在导入时遗漏了什么?

0 投票
4 回答
3257 浏览

json - 如何在 Nim 中将对象转换为 json

我正在 Nim 中制作一个小型 Web 服务,我需要使用 json 响应请求。我正在使用jester 模块来提供服务。我希望我可以使用 Nim 基础库中的 json 模块来构造某种具有字段和值的对象,然后将其转换为 json 字符串。但是怎么做?或者有没有更好的方法在 Nim 中构造 json?

0 投票
1 回答
209 浏览

safari - nimrod httpserver won't work in safari

I'm playing around with Nimrod a bit, and I've tried the HTTPServer module. I first thought it didn't work as when I tried to go to the web page in Safari, my standard browser, it gave an error. There error was something like this: (sorry if it isn't exactly right, it's translated from dutch)

Safari can't open this page Safari cannot open page localhost:5000, as the network connection has been lost unexpectedly

But, when I try to open the page in Chrome or Firefox, it works just fine

My Nimrod code:

0 投票
3 回答
237 浏览

nim-lang - 这个语法有什么名字

在语言 nim 中,可以执行以下操作:

这将与

所以,基本上你把点之前的表达式作为函数的第一个参数。我确信其他语言也有这个功能,但没有直接想到。

我想知道的是这个语法有什么名字

0 投票
2 回答
272 浏览

metaprogramming - 报表列表组成

我需要将语句列表拆分为多个部分,如下所示:

但是编译器告诉我:

x鉴于在节点列表中声明,这非常令人困惑。我怎样才能使它正常工作?(如果不是很明显,由于其他原因,我确实需要将 AST 分成多个部分)

0 投票
1 回答
1482 浏览

typeclass - Nim 中的类型类

我试图在 Nim 中简单地使用类型类。请记住,我从今天早上开始才使用 Nim,所以我可能一直在做一些愚蠢的事情。

无论如何,我想定义一个产生类型值流的伪随机生成器T。有时T是数字,因此了解可达到的最小值和最大值是有意义的——比如重新调整值。这是我的类型

我也有这样的例子,说LinearCongruentialGenerator

假设我想用它来定义Uniform在间隔内产生浮点值的生成器。我努力了

next我省略了和min的明显定义max

但是,以上内容无法编译,因为Error: 'BoundedGenerator' is not a concrete type

如果我明确地LinearCongruentialGenerator代替BoundedGenerator[int], 每次编译,但我当然希望能够切换更复杂的生成器。

谁能帮我理解编译器错误?