【erlang】练习题0003.计算水果价格

给出水果名称返回水果价格,如apple=2,oranges=5,自己定义数据结构。

现给出一个购买清单,5个苹果,4个梨子,如:L = [{oranges,4},{apples,2}]

请用一个total函数计算总价。

如:total(L). 返回24

 

 

 

 

 

 


学习难点:

掌握lists模块sum、map方法。

map函数(F,[H|T]),可以根据你自己写的F方法,对你给出的[H|T]这个列表中每一个元素H,进行F(H)处理,返回一个新的列表。

sum函数把列表中每一个元素相加并返回结果。

 

掌握3.7.3小节 提取列表元素。

掌握4.3小节    匿名函数的使用。

 

解决思路:

首先定义出数据结构

-module(shop).
-export([cost/1]).

cost(oranges) -> 5;
cost(newspaper) -> 8;
cost(apples) -> 2;
cost(pears) -> 9;
cost(milk) -> 7.

编写total函数,利用lists模块中的sum函数和map函数,以及匿名函数、读取列表List每个Item属性,数量 * 价格得出总价。

-module(shop2).
-import(lists,[sum/1,map/2]).
-export([total/1]).

total(L) ->
    sum(map(
        fun(Item)-> 
            {Fruit,Number} = Item,
            Number * shop:cost(Fruit)
        end,L)
    ).

测试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值