Elixir Formulas.Combinators.permutations/2需要一个实际整数,而不是一个变量

Elixir Formulas.Combinators.permutations/2需要一个实际整数,而不是一个变量,elixir,Elixir,守则: require Formulae.Combinators def permutations(trains, train_stations) when is_list(trains) and is_list(train_stations) do number_of_trains = length(trains) Formulae.Combinators.permutations(train_stations, number_of_trains) end

守则:

require Formulae.Combinators

def permutations(trains, train_stations)
    when is_list(trains) and
          is_list(train_stations) do
  number_of_trains = length(trains)
  Formulae.Combinators.permutations(train_stations, number_of_trains)
end
错误:

** (ArgumentError) ranges (first..last) expect both sides to be integers, got: 
{:number_of_trains, [line: 86], nil}..1
(elixir 1.10.2) lib/range.ex:63: Range.new/2
expanding macro: Formulae.Combinators.permutations/2
lib/trains.ex:86: Trains.permutations/2
但是说in
置换(l,n)
n应该是一个整数,
length(trains)
返回一个整数<代码>公式。组合。置换(火车站,2)工作正常


我犯了什么错?如何修复它?

同时,我已经更新了库以支持

使用生成的:

  • ,及

组合和置换都不接受数字的动态值。如果您想动态地拥有它,您需要负责为感兴趣的范围生成子句。允许任何动态值都容易受到长时间运行进程减慢VM的影响。