有人愿意提供一些替代解决方案来使用函数式编程和Elixir构造从列表(X)中删除重复值吗
X = [1,26,3,40,5,6,6,7] # the 6 being the duplicate
在我看来,解决这个问题的基本解决方案是迭代列表(X),然后添加到一个新的列表(Y),其中键不存在
谢谢你Enum。uniq做你想做的事,例如:
iex(6)> Enum.uniq([1,26,3,40,5,6,6,7])
[1, 26, 3, 40, 5, 6, 7]
就如何实现它而言,您可以编
在我学习长生不老药的过程中,我正在玩透析器,以便在我的功能上输入类型。在这方面,我注意到透析器似乎没有检查匿名函数的类型
在下面的示例中,我将一个匿名函数传递到all?函数中,该函数添加两个数字并返回一个数字(t::number->number)。因此,我不会像all?spec(t::any->boolean)中承诺的那样返回布尔值
透析器似乎不会报告此代码的任何错误或警告,如果透析器无法检查此类错误或我做错了什么,我会很好奇。这似乎是一个透析器错误。调用:列出。all/2(参数已交换)会产生正
我在谷歌上搜索了一段时间,却找不到关于这个主题的任何东西——要么是长生不老药是一种太年轻的语言,要么是我在用错误的术语搜索
我正在学习Jose Valim的Elixir门户教程(),并且正在为实践构建测试(我已经构建了所有的功能)
本教程的一部分是构建一个管理器,使Portal.Door模块具有容错性
我正在尝试使用以下代码测试容错性(例如,如果Portal.Door实例未正确关闭,主管将重新启动该实例)
defmodule PortalTest do
use ExUnit.Case, as
如果内容类型为文本/普通,如何创建一个插头,例如将响应的正文转换为大写?在其他中间件中,您可以调用resp=next(conn,params),然后修改resp,但我在插件中没有看到这一点。您可以定义一个插件,使用并检查响应的内容类型标题(请注意,插件要求标题为小写)。一个简单的实现(无错误检查)是:
defmodule Plug.UpperCaser do
@behaviour Plug
import Plug.Conn
def init(opts), do: opts
标签: Elixir
phoenix-frameworkecto
我有一个模型,Account,它有许多BFF。当我尝试更新父模型并传入子模型时,出现以下错误:
** (exit) an exception was raised:
** (RuntimeError) you are attempting to change relation :bffs of
Phoenixgram.Account, but there is missing data.
By default, if the parent model contains N childr
给定一张地图,可以写下如下内容:
mymap
|> put_in([:foo, :bar], "hello")
|> put_in([:attr1], "how are you")
|> put_in([:attr2], "goodbye")
理想情况下,我可以对结构执行同样的操作:
mystruct
|> put_in(.foo.bar, "hello")
|> put_in(.attr1, "how are you")
|> put_in(.attr2,
是否已经定义了标识函数Elixir
比如:
identity=fn a->a end@focused是否正确-1.10-dev添加了identity功能
旧答案:
没有预定义这样的函数(至少我知道)。它可以像您在问题中所做的那样简单地编写,或者更简洁地写为&(&1)函数。identity/1最近已添加到Elixir v1.10.0-dev中:
用法示例:
Enum.map([1, 2, 3, 4], &Function.identity/1)
我试图理解宏中的bind_quoted,并具有以下宏模块:
defmodule Debugger do
defmacro log(expression) do
if Application.get_env(:debugger, :log_level) == :debug do
quote bind_quoted: [expression: expression] do
IO.puts "============="
IO.inspect
标签: Elixir
phoenix-frameworkecto
对于Rails,有一个优秀的gem,它允许定义由位置整数字段排序的多个关联。有没有类似的Exto和Phoenix库,或者Exto本身是否实现了类似的功能?看起来有一个小的Exto扩展可以帮助:
尽管(至少是订单部分)这可以通过使用一些基本的外太空技术来轻松实现:
web/models/invoice.ex
defmodule MyApp.Invoice do
use MyApp.Web, :model
schema "invoices" do
has_many :line_i
我将此代码放在模板中(html.eex文件):
String.replace(“px”和“”)|>Integer.parse>(*0.8)%>
其中@width是“125px”
我有两个错误:
1) 未为{125,“}实施协议Phoenix.HTML.Safe
2) “*”之前的语法错误
这是否意味着不可能在模板帮助器中使用这样的管道,或者我没有正确编写它?这里有几个问题
首先,管道的末尾不是对函数的调用:
iex> 125 |> (*0.8)
** (SyntaxError) i
标签: Elixir
phoenix-frameworkexrm
我一直在尝试使用Phoenix构建博客,并使用exrm部署它。在开发过程中,一切都是无错误的,但是当我试图在控制台中打开它时,exrm版本会给我带来错误。我一直在关注这个
这是我在iex中得到的错误消息:
[info] Application blog exited: Blog.start(:normal, []) returned an error: shutdown: failed to start child: Blog.Repo
** (EXIT) an exception wa
如果此文件存在并且可从我的Phoenix应用程序访问:
https://localhost:4000/csvs/test3.csv?v=63637241208
i、 例如,如果我可以链接到应用程序并从中下载,为什么我不能使用File.open!(https://localhost:4000/csvs/test3.csv?v=63637241208)要阅读它吗
我得到的只是一个无法读取文件的错误,尽管它存在。发生了什么事?您是否将URL传递到File.open文件。打开接受文件路径,而不是URL
我有一个与有很多关联的异位模型。我想在默认情况下用一些查询定义这个关联
像
我想获取未被删除的注释(已删除是MyApp.Comment架构的布尔字段,应等于false)。实现这一目标的途径是什么
我的尝试#1
我试着去做
has_many :comments, Ecto.Query.from(c in MyApp.Comment, where: v.deleted == false)
但是我有
(ArgumentError) association queryable must be a sc
标签: Elixir
phoenix-frameworkecto
我试图以一种形式显示一些相关数据。我有一个学生模式
schema "students" do
field :firstname, :string
field :lastname, :string
field :birthday, Ecto.Date
field :joined_on, Ecto.Date
field :gender, :string
timestamps()
end
每个学生都可以有一个母亲和一个父亲,我将他们指定为父母,并创建了一个单独的模式和单独的表
因此,我理解此上下文中的捕获运算符:
sum_it = &(&1 + 2)
sum_it.(1) # result is 3
但我在这里不明白:
# stores "Peter" where pid = #PID<0.82.0>
Agent.update(pid, &["Peter" | &1])
#存储“Peter”,其中pid=#pid
Agent.update(pid,&[“Peter”|&1])
看起来它把列表变成了一个匿名函数?而“&1
我正在构建一个项目,它将作为多个其他项目的核心,有点像ruby world中的Rails引擎
我已经在我的核心项目中实现了一些基本的数据库结构,基本上是全面共享的结构
我的问题是,使用我的核心的项目没有注册核心项目的迁移
有什么方法可以运行核心依赖项的迁移吗
如果您需要更多信息,请告诉我。:-)
谢谢您应该能够在自定义任务中使用exto.Migrator模块。
有关更详细的说明,请参阅
defmodule Release.Tasks do
def migrate do
{:ok, _
我收到错误,模块GenServer。行为未加载,无法找到
对于以下脚本:
defmodule FridgeServer do
use GenServer.Behaviour
def init(items) do
{:ok, items}
end
def handle_call({:store, item}, _from, items) do
{:reply, :ok, [item | items]}
end
end
我正在学习关于OTP的教程,并在运行测
标签: Elixir
phoenix-frameworkcowboy
我正在使用Exrm部署我的Phoenix应用程序。我已将我的应用程序配置为绑定到我的config/prod.exs中的0.0.0:
config :apiServer, ApiServer.Endpoint,
http: [ip: {0, 0, 0, 0}, port: 4000],
url: [host: "sitenamehere.co", port: 4000],
cache_static_manifest: "priv/static/manifest.json",
roo
我的包依赖于当前仅在github上的包。我试图将包向下拉到我自己的供应商文件夹中,因此我的依赖项部分如下所示:
defp deps(:prod) do
[
{:ex_doc, "~> 0.16.2"},
{:finder, path: "vendor/Finder" },
{:erlware_commons, "~> 1.0"},
{:pattern_tap, path: "vendor/elixir-pattern-tap"},
标签: Elixir
phoenix-frameworkdialyzer
在elixir中,您可以定义如下自定义异常:
defmodule AppWeb.CustomError do
defexception message: "some custom server error", plug_status: 500
end
但这不再是一种长生不老药了
因此,如果将其与定义了此类类型规范的第三方库一起使用:
@spec capture_exception(Exception.t, Keyword.t) :: task
def capture_excepti
我在列表理解中动态创建映射,然后尝试在每次迭代中将生成的映射附加到列表中
下面是一个代码:
result = []
temp_map = %{}
for n <- 1..number do
temp_map = Map.put_new(temp_map, :title, Enum.at(titles, n))
temp_map = Map.put_new(temp_map, :content, Enum.at(contents, n))
result = res
我有一个csv_文件,其中
a、 )首先,需要将每行转换为xml和
b、 )其次,转换后的xml将被发送到rails端进行一些数据库写入操作
下面是我的流程代码
flow = csv_rows
|> Flow.from_enumerable()
|> Flow.partition
|> Flow.map(&(CSV.generate_xml(&1)))
|> Flow.map(&(CSV.save_to_rails_databse(&
我正在尝试更新mysql表中的一些数据。我正在使用EXTO执行数据库操作
用户表与ItemsPurchased有关联,有许多关联,所属的如下所示:
schema "sales_orders" do
field(:total_bill, :float)
field(:quantity, :integer)
field :sales_order_id, :integer
has_many :items_purchased, Orders.ItemsPurchased
elixir 1.9中的My函数解码来自外部api的json响应,如下所示:
def decode({ok, body, "application/json"}) when is_binary(body) do
body
|> Poison.decode(keys: :atoms)
|> case do
{:ok, parsed} -> {ok, parsed}
_ -> {:error, body}
end
我遇到了一个问题,我需要将匹配案例添加到一个同时具有装饰器和默认值的函数中:
@decorate print()
def foo(a, b \\ "b") ...
使用Decorators包中的一个示例,此示例会发出警告:
defmodule PrintDecorator do
use Decorator.Define, [print: 0]
def print(body, context) do
quote do
IO.puts("Function called
标签: Elixir
phoenix-frameworkecto
我正在为远程API创建一个本地db模式,我遇到了一些问题
# CatalogObject
schema "catalog_objects" do
field :type, :string
has_one :item_data, ItemData, foreign_key: :catalog_object_id
has_one :item_variation_data, ItemVariationData, foreign_key: :catalog_object_id
end
#
运行以下各项时,一切都很好:
GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to.json \
MIX_ENV=prod \
DATABASE_URL=... \
SECRET_KEY_BASE=... \
HOST=localhost \
PORT=80 \
iex -S mix phx.server
但是,当使用混合释放生成长生不老药释放时:
GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to.js
在config/config.exs中,我有:
config :my_app, :settings,
my_key: %{
key1: "default-key1",
key2: "default-key2",
key3: "default-key3"
}
在config/dev.exs中:
config :my_app, :settings,
my_key: %{
key1: "
上一页 1 2 ...
84 85 86 87 88 89 90 ...
下一页 最后一页 共 125 页