问题标签 [elixir]

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

function - Elixir 使用宏构建具有模式匹配和守卫的自定义函数?

我需要这样的DSL:

并将每个调用转换为规则宏(我已经定义)并让它在SomeModule模块中定义一个函数。像这样:

我想对传递给宏生成的函数的参数使用模式匹配。我已经看到如何在宏中定义自定义函数,但我不确定如何在宏生成的函数中实现模式匹配和保护。

提前致谢!

0 投票
2 回答
1042 浏览

erlang - 将 Elixir AST 转换为 Erlang AST?可能吗?

是否可以像这样引用 Elixir 表达式(AST 树):

并将其转换为 Erlang AST?

我查看了代码模块以及一些内核模块,寻找执行此操作的函数,但我没有找到任何东西。我什至不确定这是否可能......我不知道像 Elixir 宏这样的东西将如何在 Erlang AST 中表示。

提前致谢!

0 投票
3 回答
8151 浏览

elixir - 使用 Elixir 的 :httpc erlang 模块

我对 elixir 很陌生,没有 erlang 经验(或 func-y 的东西),但这很快就会变得明显..->

我不知道 :no_scheme 是什么意思。我用谷歌搜索了 no_scheme 之类的东西,我确信这很明显,但我真的什么也没找到。我可以在 erlang 文档中找到的唯一模糊相关的东西是 ->

或者也许我不符合 RFC2616 或其他什么......我没有想法(现在)。

Elixir 和 Erlang 非常棒,但如果能帮助我推进我的旅程,我将不胜感激。

谢谢你的帮助!

我在erl中试过了。

编辑:

好的,我最大的问题是我"http://www.erlang.org"对字符串进行了双引号,我猜 elixir -> erlang 将它们像 parrotys answer 一样单引号'http://www.erlang.org'

no_scheme 仍然很神秘。我能找到的只是与重定向和 RFC 实现有关的东西。我刚刚决定将其视为一般错误,与网址有关。

编辑2:

有人在这里发表了一篇博客文章,对此进行了很好的解释。关联

像数据库这样的 Erlang 原子变成 :database,像 Erlang 版本中的 PgConn 这样的局部变量在 Elixir 中变成 pg_conn。

当字符串字面量是 Erlang 函数的参数时,我们需要用单引号引起来。如果您将 UTF-8 字符串存储在 Elixir 变量中,则可以使用 binary_to_list/1 函数将其转换为字符列表。

编辑3:

具有讽刺意味的是,几个小时前发布的名为“HTTP 客户端”的最新 Elixir Sip 涵盖了我的整个问题。看看任何遇到这就是未来的人!

0 投票
2 回答
360 浏览

rabbitmq - Elixir - 无法在 2 个 Deps 之间访问 Record.extract

我是 Elixir 和 Erlang 的新手,所以我可能跳过了一些基本的东西,但是......

我正在尝试在 Elixir 中使用 RabbitMQ,并使用基于 Elixir 的库 (d0rc/exrabbit)

混合 deps.get 时,它会卡住两次。第一个问题是 dorc 的 exrabbit 在 elixir 0.10.2-dev 上运行,而我在 0.11.2 上运行......所以我只是想尝试强制它,以防万一它有效。也许这就是这里的问题:p

一旦我强迫部门接受长生不老药更高,第二个问题就出现了。

有问题的代码如下:

从我的角度来看,它似乎没有在正确的位置获取信息。

我检查并“rabbit_common/include/rabbit_framing.hrl”确实存在,但不在_build目录中,但在deps中。这对我来说很有意义。

我想如果 Record.extract 上有更新暗示这样的事情,我将不得不在 elixir 补丁说明中查找......我有什么遗漏的吗?

谢谢 !

0 投票
1 回答
1291 浏览

erlang - 混合 Elixir 和 Erlang?

我想在 Elixir 代码中使用一些 Erlang 结构。一种是 Erlang 列表推导。

我的一般问题是,在 Elixir 中编码时是否有某种方法可以“下拉”来编写 Erlang 代码(就像你看到人们在 Ruby 或 TCL 中嵌入 C 或其他任何方式一样)。我的具体问题(与一般问题有关)是我是否有可能在 Elixir 编码时以某种方式获得 Erlang 样式的列表理解。

如果使用普通的 Elixir 无法做到这一点,也许可以通过宏来完成(可能很难?)?我确实知道我可以只编写一个 Erlang 模块并从 Elixir 调用它,但这并不是我想要的。

0 投票
1 回答
610 浏览

interface - Erlang 中的 Elixir 协议和一个奇怪的警告

我想((IStringer)object).ToString()用 Erlang 写类似(在 C# 中)的东西。经过一些研究,我了解到 Elixir 有一个叫做 Protocols 的东西,它与 C# 非常相似(以由内而外的方式)。然后我在 Erlang 中提出了这个想法/代码——这对我来说已经足够好了:

它要么返回预期值,要么返回not_implemented原子!

但是有2个问题:

1 - 为什么没有人使用这个或基于 Erlang 中的有状态模块来推广东西?(OTP 除了与一些 Erlangers 交谈之外,他们不知道 OTP 实际上是围绕此构建的!所以确实需要改变 Erlang 的教学和推广方式。我可能很困惑。)。

2 - 为什么我会收到此警告?这个电话实际上永远不会失败。

警告:

编码:

输出是:

我在 Windows 8 64 位上的 Erlang R16 B2 (V5.10.3) 32 位上执行此操作。

0 投票
3 回答
5064 浏览

range - Elixir 字符范围

我和Range一起玩Elixir
它工作正常:

但是这里有错误:

我来自Ruby熟悉Erlang
我想了解什么问题?
谢谢!!!

0 投票
3 回答
2098 浏览

erlang - 在 Erlang (Elixir) 中对作为元组的记录进行模式匹配

在 Erlang(或 Elixir)中将记录作为元组进行模式匹配是一种不好的做法吗?

示例代码:假设我们已经定义了这个模块:

如果我们定义一个测试如下:

它会成功。

编辑1:@parroty 这里模式匹配测试元组的原因是模拟某种“某种”鸭子类型的记录;我希望的最终结果应该是这样的:

因此,每条带有“标签”字段且带有“home”值的记录都将匹配第一个子句。当然,那里似乎会有一些性能损失。

0 投票
9 回答
90999 浏览

elixir - 如何在 Elixir 中加入字符串?

如何用空格连接列表中的两个字符串,例如:

变成

0 投票
1 回答
197 浏览

pattern-matching - 有没有办法在 Elixir 的模式匹配中引用整个变量?

Haskell 中有一个as-pattern,它允许我们在模式匹配时引用整个变量:

变量wholeList代表原始变量。

假设head["Hello"], 并且tail["World"], 那么wholeList["Hello", "World"]

head使用 as-pattern,我们可以通过连接and来避免再次构造变量tail

Elixir 中是否存在这样的功能?