Erlang:混合列表:带模式匹配的seq

Erlang:混合列表:带模式匹配的seq,erlang,Erlang,我再次需要你的帮助。我想知道是否可以在模式匹配中使用list:seq(from,to)?下面是我试图实现的代码 product_selling_price_evaluate(lists:seq(1100,1190),standard_produce,Costprice) -> Costprice*10; product_selling_price_evaluate(lists:seq(1200,1300),standard_produce,Costprice) -> Costpric

我再次需要你的帮助。我想知道是否可以在模式匹配中使用list:seq(from,to)?下面是我试图实现的代码

product_selling_price_evaluate(lists:seq(1100,1190),standard_produce,Costprice) -> Costprice*10;
product_selling_price_evaluate(lists:seq(1200,1300),standard_produce,Costprice) -> Costprice*20;
product_selling_price_evaluate(lists:seq(1400,1500),standard_produce,Costprice) -> Costprice*30;
product_selling_price_evaluate(lists:seq(1600,1700),standard_produce,Costprice) -> 40*Costprice.
当我编译代码时,它会给我一个非法的模式错误

示例输入是

selling_price:product_selling_price_evaluate(1100,standard_produce,10).
我希望它找到第一个匹配项,并将输出作为

100
列表:seq是否适用于案例

让我用一种更简单的方式来解释。我有下面的箱子

1100 to 1190   = Apples
1200 to 1300   = Oranges
1400 to 1500   = Bananas
1600 to 1700   = Berries

如果我把输入设为1125,我希望输出是苹果。同样,如果我输入1450,我希望输出是香蕉。我希望你们能理解,我在努力实现什么

如果您没有提供所需的输入,则函数需要一个列表([110011101,1102,…,11891190])作为其第一个参数,而当您提供一个数字,即1100时。

如果您没有提供所需的输入,则函数需要一个列表([110011101,1102,…,11891190])作为其第一个参数,当你给出一个数字,即1100时。

如果我正确理解了你想要实现的目标,那么你可能正在寻找的是守卫

类似这样(未经测试):

当N>=10且成本价格为*10时,产品销售价格评估(N,标准产品,成本价格);
当N>=21时,产品销售价格评估(N,标准产品,成本价格),成本价格也为20;
[...]

如果我正确理解了您想要实现的目标,那么您可能正在寻找的是守卫

类似这样(未经测试):

当N>=10且成本价格为*10时,产品销售价格评估(N,标准产品,成本价格);
当N>=21时,产品销售价格评估(N,标准产品,成本价格),成本价格也为20;
[...]

防护装置可以用逗号分隔(,),其含义与
相同

product_selling_price_evaluate(N,standard_produce,Costprice)
    when 10 =< N, N =< 20 -> Costprice*10; 
product_selling_price_evaluate(N,standard_produce,Costprice)
    when 21 =< N, N =< 30 -> Costprice*20;
...
产品销售价格评估(N,标准产品,成本价格)
当10=Costprice*10;
产品、销售、价格、评估(N、标准产品、成本价)
当21=Costprice*20;
...

防护装置可以用逗号分隔(,),其含义与
相同

product_selling_price_evaluate(N,standard_produce,Costprice)
    when 10 =< N, N =< 20 -> Costprice*10; 
product_selling_price_evaluate(N,standard_produce,Costprice)
    when 21 =< N, N =< 30 -> Costprice*20;
...
产品销售价格评估(N,标准产品,成本价格)
当10=Costprice*10;
产品、销售、价格、评估(N、标准产品、成本价)
当21=Costprice*20;
...

您肯定不想与包含100个元素的列表进行匹配。你的例子就是这个意思。但您似乎需要列表中参数的成员身份,您肯定不想与包含100个元素的列表相匹配。你的例子就是这个意思。但你似乎需要成为清单中的一员。我想,你提出的解决方案就是前进的方向!谢谢好的,当我使用“andalso”时,我得到了一个语法错误。我错过什么了吗<当productcode>=1100时,代码>产品\销售\价格\评估(productcode、标准\产品、成本价),并且productcode成本价*10好的,当Productcode>=1100,Productcode=<1199->Costprice+Costprice*0.40时,它应该
产品销售价格评估(Productcode,standard,product,Costprice)我想,你建议的解决方案就是前进的方向!谢谢好的,当我使用“andalso”时,我得到了一个语法错误。我错过什么了吗<当productcode>=1100时,代码>产品\销售\价格\评估(productcode、标准\产品、成本价),并且productcode成本价*10好的,当Productcode>=1100,Productcode=<1199->Costprice+Costprice*0.40时,它应该
产品销售价格评估(Productcode,standard,product,Costprice)哦,那么我不应该使用列表:seq那里!谢谢,那么我就不应该使用列表:seq!谢谢,说的对,我终于找到了!谢谢你!哦,说的对,我终于找到了!谢谢你!