Elixir 长生不老药有转置功能吗?

嗨,我在Elixir中寻找转置函数。 例如,我有一个数组a,调用一个函数后,结果应该是b: a = [[1, 2], [3, 4], [5, 6]] b = transpose(a) b => [[1, 3, 5], [2, 4, 6]] 目前Elixir中没有,但您可以使用以下工具创建自己的: def transpose([]), do: [] def transpose([[]|_]), do: [] def transpose(a) do [Enum.map(a, &h

Elixir 通过宏创建匿名函数

我打算制作一个API,其中匿名函数由宏组成,例如 transform [x, y], do: x + y transform x, do: x 应使用转换头和体[:do]作为匿名函数的头和体。例如,上述宏调用上述示例应收集到: fn [x, y] -> x + y; x -> x end 使用unquote片段可以轻松创建新的命名函数defs,但不能创建新的匿名函数: iex> val = 1 iex> fn() -> unquote(val) end

Elixir 从二进制文件中获取位

我正在为base64编码器编写一个比特流,但似乎找不到访问原始比特的方法 假设我得到了位字符串: 0100 1101 0110 0001 0110 1110 在长生不老药中表示为: <<77, 97, 110>> # or the string "Man" #或字符串“Man” 我需要以6位的块访问位字符串,以便将其编码为base64。一个人怎么可能这样做呢?我没有太多使用原始二进制文件的经验,所以我可能会天真地这样做。您可以任意从二进制文件中获取单个位组: iex

Elixir 具有前瞻性的可枚举/流

我开始学习长生不老药,遇到了一个我一直无法轻松解决的挑战 我正在尝试创建一个函数,该函数接受一个Enumerable.t并返回另一个Enumerable.t,其中包含接下来的n个项。它的行为与Enum.chunk(e,n,1,[])稍有不同,因为数字迭代计数始终等于原始可枚举计数。我还需要支持流 @spec lookahead(Enumerable.t, non_neg_integer) :: Enumerable.t 这最好用doctest语法来说明: iex> lookahead(1

Elixir 如何在Phoenix框架中选择性禁用CSRF检查

我正在尝试创建一个指向我的网站的Facebook页面标签。 Facebook向我网站的url发送HTTP POST请求。 这里的问题是服务器有一个内置的CSRF检查,它返回以下错误: (Plug.CSRFProtection.InvalidCSRFTokenError) invalid CSRF (Cross Site Forgery Protection) token, make sure all requests include a '_csrf_token' param or an 'x

Elixir Phoenix JSON-API序列化仅在创建

我在发布新的客户时遇到以下错误-呈现show操作时抛出错误。在控制器中显示预加载与Repo.preload的关联 Request: POST /api/v1/customers ** (exit) an exception was raised: ** (JaSerializer.AssociationNotLoadedError) The customer_notes relationship returned %Ecto.Association.NotLoaded{}. Please

Elixir Phoenix热部署静态资产未使用新版本

在我的版本中,css文件的路径没有改变,也就是说,它仍然指向一些旧的css。我试过解决这个问题的办法,但没用。我一定是做错了什么。您是否按说明更改了config.exs中的路径?你把它改成了什么?@bitwalker,我把prod.exs中的路径改成了“.”。我现在也将在config.exs中更改它。我已将config.exs中的:root更改为“.”,并发布了一个新版本。但是它没有改变css;和早午餐建设——生产;和env MIX_env=prod MIX phoenix.digest;和en

Elixir 在记录之间插入异位

我对凤凰城是个新手,外星人生态系统。我试图创建中间表来处理多对多关系。不幸的是,我不知道如何创建包含用户和事件数据的变更集(插入变更集),在可用的源中查找这些信息时遇到了很大的困难。你能帮忙吗?至少我指出了正确的方向 当我使用关系执行另一项任务时,我使用build/2,但它只需要一个assoc参数 我创建了以下结构: 表1,包含事件的数据: schema "events" do field :name, :string field :address, :string f

RejectDB elixir客户端:基于数组中是否存在值进行筛选

给定的示例文档在一个数据库中,如下所示 [{id: "1", tags: ["alpha", "bravo", "charlie"]}, {id: "2", tags: ["delta", "echo", "foxtrot"]}] 我知道我可以使用RejectionDB data explorer轻松筛选标记数组,如下所示: r.db("mydb").table("mytable").filter(r.row("tags").contains("delta")); 然而,我在尝试使用DB e

Elixir 端口消息返回到意外进程

我有一个简单的端口应用程序(字面上是来自的示例)和一个控制其使用的GenServer GenServer可以很好地与C应用程序通信,但它不会收到响应,iex或其主管会收到响应。如果我从iex调用flush,我会看到预期的消息 如果我创建一个单独的模块并从中生成一个接收循环,它仍然不会接收端口响应消息 我有一种感觉,我错误地打开了端口,但无法证明这一点。有什么明显的事情我搞砸了吗 port = Port.open({:spawn, "./extprg"}, [{:packet, 2}, :exit

Elixir 使用非标准的repo路径运行异位迁移

我的mix应用程序中有一个“虚拟”应用程序,因此,它的第一次迁移被放置在test/dummy/priv/repo/migrations/20160323060044\u create\u user.exs中 我想运行这个迁移,但它返回的11:19:20.647[info]已经启动了,这让我很失望 这是我的测试。exs: config :ecto_state_machine, Dummy.Repo, adapter: Ecto.Adapters.Postgres, username: Sy

Elixir 谁能准确地解释“插入插头”的含义?

做得很好: 在连接中分配新的私钥和值 此存储用于库和框架,以避免将:assigns字段写入用户存储。建议库/框架使用库名称作为键的前缀 我无法理解此代码段的用法:%Conn{private:private}=connI假定您正在询问函数的行为。可能您应该编辑问题以删除开头的@spec行,因为它会混淆您要问的是哪个put_private。%Conn{private:private}=Conn是与Conn的模式匹配,Conn是一个结构,以便在Conn中获取private:key的值。您可以在 @

跨平台Elixir部署

我已经创建了Elixir应用程序(Slack bot),我想将其部署到运行Ubuntu的朋友的服务器上。不必在机器上构建应用程序的最佳方法是什么 我尝试使用exrm创建要部署的包,但由于我是在Windows上开发的,该包仅适用于Windows计算机(erts-7.2.1/bindir仅包含Windows二进制文件) 我不需要非常高级的部署,所以也许我可以复制已编译的应用程序并在那里运行它。但是我不知道我应该复制什么(beam文件?),从哪里复制,以后如何运行 另一个问题是服务器上没有Erlang

Elixir 未定义的函数send/3

我正在尝试在套接字路由器中侦听消息,将消息发送到内存中的进程,即生成的运行程序模块,然后将结果广播给客户端 在Phoenix之外的独立测试中,此代码有效。对于菲尼克斯,我得到了这个错误 ~/chatroom:.mix phoenix.server Compiling 2 files (.ex) == Compilation error on file web/models/runner.ex == ** (CompileError) web/models/runner.ex:8: undefi

Elixir 在EXTO片段中使用表别名/查询表达式?

以此查询作为EXTO版本的基础: select folder_id, json_agg(p.*) from folder_memberships inner join profiles p on p.id=folder_memberships.profile_id where folder_id in (1234) group by folder_id; 我有这个密码: # ids=[1234] from(p in Profile, join: link in Fol

Elixir 保存多个同时具有多个关联Phoenix 1.3

我有两种型号: defmodule TransactionApi.Messages.Event do use Ecto.Schema import Ecto.Changeset alias TransactionApi.Messages.Event alias TransactionApi.Messages.EventDetail schema "events" do field :city, :string field :email, :string

Elixir:将函数从模块传递到映射函数

我编写了一个简单的map函数(用于学习;我了解Enum.map): 我可以在iex中轻松使用它: MyList.map [1,2,3], &(&1 + 1) 我使用的是一个匿名函数,所以这并不奇怪 如何使用模块本身的函数调用它 iex(1)> MyList.map [1,2,3,4], MyList.add_1 ** (UndefinedFunctionError) function MyList.add_1/0 is undefined or private. Did

Elixir将模块引用作为函数参数传递

我对长生不老药/凤凰非常陌生。我有一个这样的函数 defp get_list(old_result, filter) do MY.Model.search_name(filter) |> Enum.concat(old_result) end 现在,为了使其更具可重用性,我想将模型的引用传递给函数,使其类似于: defp get_list(old_result, filter, AnotherModel) do MY.AnotherModel.search_name(filt

Elixir 在DynamicSupervisor启动时启动辅助进程

我已经实现了一个DynamicSupervisor,它可以处理使用进程的工作人员。在/3之后发送\u以发送具有一定时间精度的推送通知 在某些情况下,例如,当我发布一个没有热交换功能的新版本时,我希望保留一个记录,记录在DETS中尚未完成的所有工作进程,以及当DynamicSupervisor开始以保存在DETS中的相同状态再次创建所有这些工作进程时 我知道从一开始就不支持工人,我应该实施start\u child来启动一个新工人,但不知道如何将DynamicSupervisor的启动与同一模块上

Elixir 长生不老药地图绑定的优化方法

我有以下代码: total_pages = res["payload"]["total pages"] current_page = res["payload"]["page"] total_entities = res["payload"]["total entities"] queryId = res["payload"]["queryId"] unprocessed_entities = res["payload"]["entities"] 其中

如何在Elixir中使用流获取日期时间列表

如何使用具有特定间隔的流获取两个日期时间之间的日期时间列表 是我干的 stream = Stream.iterate(starting, &(Calendar.DateTime.add!(&1, 1200))) 1200是我每次要添加到日期的间隔 我这样做的时候效果很好 iex(16)> {:ok, after_seconds, 0, :after} = Calendar.DateTime.diff(ending, starting) {:ok, 691200, 0, :

Elixir 级联Enum.reduce/3和Map.update/4

在我寻求一个好的解决方案的过程中,我试图解决这个问题: # This is the data I have. # trains = [:red_train, :blue_train] train_stations = ["Station 1", "Station 2"] # This stepping stone is calculated by a function. # stations_permutations = [ ["Sta

elixir Enum.filter的意外输出

我正在学习长生不老药,我从PragProg的书《编程长生不老药》中得到的一个例子是: 太好了,这是预期的结果。现在当我这样写的时候: iex(27)> (1..10) |> Enum.map(&(&1*&1)) |> Enum.filter(&(&1 > 40)) '1@Qd' 为什么我会得到这种奇怪的1@Qd“string?它在elixir中没有bug,因为方法[]应该像在erlang中一样返回新的 但对于unicode数

Elixir 接收:文件上的badarg.write

我开始学习Elixir,这也是我的第一个动态语言,所以我真的无法使用没有类型声明的函数 我想做的是: def create_training_data(file_path, indices_path, result_path) do file_path |> File.stream! |> Stream.with_index |> filter_data_with_indices(indices_path) |> create_ou

在Elixir中打印typedoc的功能是什么?

Elixir中似乎有三种类型的文档(v1.1.1是我现在使用的版本)、@doc、@moduledoc和@typedoc 在iex中,@doc和@moduledoc可以通过h/1打印出来,但不能通过@typedoc打印出来。我知道t/1可以打印出类型定义,但我需要文档 为什么h/1只支持@doc和@moduledoc?还不支持。我们应该更新IEx以支持它。我打开了一个问题:非常感谢您的及时回复,何塞!

Elixir 控制台';定义模块后的输出是什么意思?

在console中定义模块会产生一些数字集合,其中包含模块的函数及其所采用的参数数: defmodule HotelRoom do def book(%{name: name, age: age}) when age < 25, do: IO.puts "#{name}, you are too young" def book(%{name: name, age: age}) when age >= 30, do: IO.puts "#{name},you are 30 ye

Elixir 为什么mix没有使用太多OTP?

我试图通过查看使用OTP的项目的好例子来学习OTP。我研究了这段代码。但看起来mix并没有使用太多OTP 对我来说,mix有很多OTP的可能用例。例如,并发编译多个文件、并发下载DEP等 我想知道为什么mix不使用OTP?还是CLI应用程序的OTP过度杀戮?它是否只适用于长时间运行的应用程序 我还注意到mix不能同时运行。这也有原因吗?我想你已经回答了你自己的问题。核心OTP概念可能不适用于短期命令 例如,如果你有许多独立的任务(如服务器连接),并且其中一个任务失败时,你仍然需要保持应用程序运行

无法使用Elixir中的Hound加载页面

我试图请求一个页面并检查它,但我得到: ** (exit) exited in: GenServer.call(Hound.SessionServer, {:change_session0.100.0>, :default, []}, 60000) ** (EXIT) an exception was raised: ** (MatchError) no match of right hand side value: {:error, :econnrefused}

Elixir 使用unicode编码json

我正在使用HTTPoison获取《长生不老药指南》网站,然后使用Floki对其进行解析,以构建一个HTML 2 Jupyter笔记本变压器(描述中带有标记)。我得在后面加上记号\u0060用于代码高亮显示,目前为止,该功能仍然有效。我在一些地方使用字符串插值“#{Floki.text(childs_nodes)}”,在其他地方使用Enum.join”“从HTML处理和转换为标记 转换后的结果根据jupyter notebookformat存储在映射中。当我调用Poison.encode note

Elixir 对于带有“的型号,订购依据”;“你有很多”;及;属于;

我如何通过在Phoenix/Elixir Exto中预加载的模型进行订购 # model1 has_many model2 data = Repo.get_by!(Model1, var1: "fdsfdsfds") |> Repo.preload(:model2) # |> order_by(:model1.model2.var123) # how?????? 如何按字段“model1.model2.var123”排序?是否要对加载的关联排序?您是否尝试过使用文档中提到的预加载

Elixir 长生不老药电报机器人

我是长生不老药新手,我写电报。我使用此项目作为模板: 这很好,但我有几个问题 如果“命令”太大,如何拆分?我有一个想法,使用App.Commander创建一个新模块NewCommands,并将其添加到Matcher中的handle\u cast中。这样对吗 为什么Matcher作为GenServer运行?我认为它不需要任何状态或smth 请从阅读《长生不老药》和《长生不老药》的区别开始 只要我们想轻松地从其他模块访问函数或宏而不使用完全限定名,我们就使用import 因此,不应该在这里使用use

Elixir Eixir元编程-定义宏在编译时从宏中可用

我正在学习Elixir元编程,我正在玩弄一个宏,它允许我定义REST资源。界面如下所示: defmodule Router do use Resources resource "cars" resource "animals" end 我已经使用modulemodule定义了一个模块属性,但我无法实现以下功能: defmodule Resource do defmacro __using__(_opts) do quote do Module.put_at

Elixir 凤凰城应用程序中的自定义混合任务

当我在我的Phoenix应用程序中运行自定义混合任务时(我认为它甚至与Phoenix无关,但仍然是),它使用了一些外部库(例如 **(退出)无进程:进程未激活或当前没有与给定名称关联的进程,可能是因为其应用程序未启动 :erlang.send(:geocoder\u workers,{:$gen\u cast,{:取消等待,{引用},[:noconnect]) 直到我加上 应用程序。确保所有应用程序都已启动(:geocoder) 到混合任务。所以我的问题是为什么我的所有依赖项都不是自动启动的?

Elixir 如何保存IEx历史记录?

使用IEx(Elixir的REPL),我希望能够保存我的命令历史记录 例如: 我可以打开一个新的IEx会话并执行一个命令。执行命令后,我可以按向上箭头并预填充最后一个命令。关闭IEx并重新打开后,我希望能够访问我最后的命令 有办法做到这一点吗?对于Erlang/OTP 20 这是内置的(从) 从Erlang/OTP20,可以通过传递 在VM中启用它的一些标志。这可以根据需要进行 启动IEx的依据: iex--erl“-内核shell\u历史记录已启用” 如果你愿意 在整个系统上,您可以使用ERL

为Elixir安装WebStorm(未定义Project SDK)

我一直在尝试将WebStorm设置为与Elixir一起使用,我收到了一条项目SDK未定义的消息 这就是我所拥有的: $ elixir -v Erlang/OTP 20 [erts-9.0] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:10] [hipe] [kernel-poll:false] Elixir 1.5.1 我还有用于WebStorm的Elixir插件,版本:5.1.0 我第一次在brew中安装了Elixir,但

Elixir Phoenix 1.3 flash未显示

我的put\u flash(conn)和get\u flash(conn)方法行为异常;当我使用重定向时,一切正常,但当我尝试在后面的控制器中添加flash\u msg时,什么也没有显示 消息似乎存储在:phoenix_flash中,而不是:plug_session;你知道那里出了什么问题吗 def index(conn, _params) do conn |> put_flash(:info, "Welcome : info") |> put_flash

Elixir:在配置更新时重新编译

我有一个elixir应用程序,当我更新应用程序配置(例如更改端口,然后再次运行我的应用程序)时,我看不到任何差异。似乎该应用程序仍然可以在配置中使用旧版本。我必须修改应用程序代码(例如添加一些无意义的行:IO.put(“foo”)),只有在这之后,应用程序才能使用新版本的配置运行。实现相同结果的真正方法是什么?我无法重现这种行为,可能是由于较新的mix版本。下面是一个盲目的猜测什么可能导致它和如何克服它 Elixir中的.exs文件和.ex文件之间存在显著差异。前者是所谓的“长生不老药脚本”,后

Elixir 无法在Phoenix 1.3中生成html

正在尝试生成: $ mix phx.gen.html MyModel my_models a b c d:integer 和错误: ** (Mix) Expected the schema, "my_models", to be a valid module name mix phx.gen.html, phx.gen.json and phx.gen.context expect a context module name, followed by singular and p

在运行结束时列出失败的Elixir测试

每当出现多个失败时,我发现很难滚动详细的输出并找到失败的测试 有没有办法在测试套件运行结束时列出所有失败的测试 实际的 预期 不是默认的。您可以编写一个自定义的ExUnit格式化程序来实现这一点。我很确定我记得以前有人问过这件事,所以也许工作已经完成了? Finished in 12.9 seconds 2 doctests, 241 tests, 6 failures Randomized with seed 793406 Finished in 12.9 seconds 2 doctes

Elixir Ex_machina在创建时更改数据

这是我的工厂(使用ex_machina软件包): 问题图式 保留模式 以下是我的测试设置: question = insert(:question, reserved: %{ information: %{player_name: "steve"}}) 在本例中,我只想更新保留的地图的玩家名称。但当我使用上述设置时,问题结构如下所示: %MyApp.Question{ __meta__: #Ecto.Schema.Metadata<:loaded, "questions">,

Elixir中的模算子

如何在Elixir中使用模运算符 例如,在Ruby中,您可以执行以下操作: 5 % 2 == 0 它与Ruby的模运算符有何不同?对于整数,请使用: iex(1)>rem(5,2) 1. iex(2)>rem(5,2)==0 假的 从文档中: 计算整数除法的余数 rem/2使用截断除法,这意味着结果总是 有红利的符号 如果其中一个参数不是 整数,或当除数为0时 与Ruby相比的主要区别似乎是: rem仅适用于整数,但%完全根据数据类型更改其行为 Elixir中的负红利符号为负(与Ruby的符

Elixir Postgrex-返回不明确列引用错误的查询

我有以下疑问: def user_contacts(provider_id, filter) do query = from( u in User, preload: [:groups], where: u.provider_id == ^provider_id and u.type != "company" ) query |> filter_sector(filter) |> filter_availabili

Elixir 第一个\u或\u在EXTO中创建等效项 安装程序

具有此资源的1.4.11应用程序: mix phx.gen.html Institutions SchoolType school_types name 问题 我想找到第一个具有给定名称的学校类型。如果那不存在,我想创造它。在ActiveRecord中,我会首先使用或\u create 我有一个有效的代码。但这看起来并不好,也许有更好更干净的方法来解决这个问题 school_type_name = "Example" if school_type_name != nil do query

Elixir混合测试将颜色设置为默认值为已启用

在我的项目中,我可以运行命令mixtest--color,它将一些彩色输出添加到终端。我想全局设置它,这样我就可以运行mix test,它会自动拾取我想要的彩色输出 我试过的 我搜索了关于全局配置和全局混合配置的在线elixir文档 我也尝试了mix help,但看不到有关全局配置的任何信息 我也尝试过mix-help-test,这里我似乎不清楚如何将选项添加到mix.exs文件,或者是否可以在某个地方设置全局选项 我觉得这可能是可能的,但在没有提出我想在这里提出的任何问题之后。我不知道系统范围

你能从管道中的elixir结构中提取数据吗?

我有一个函数,它将输入字符串散列到带有数字的列表中,并将其放置在结构中 def hash_input(input) do hexList = :crypto.hash(:md5, input) |> :binary.bin_to_list %Identicon.Image{hex: hexList} end 我想编写一个测试,确保hexList中的每个元素都是一个整数,因此我提出了以下方法: test "Does hashing produce a 16

Elixir (MatchError)cond语句中的右侧值不匹配

我有一个具有以下功能的函数: cond do Enum.all?([10,11,12,13,1], fn x -> x in list end) == true -> { 9, [10,11,12,13,1] } Enum.all?([23,24,25,26,14], fn x -> x in list end) == true -> { 9, [23,24,25,26,14] } Enum.all?([36,37,38,39,27], fn x ->

上一页 1 2 ...  47   48   49   50    51   52   53  ... 下一页 最后一页 共 125 页