Erlang程序设计(第2版)源代码和课后练习答案(第五章-第八章)

本文提供了Erlang程序设计第二版中第五章至第八章的源代码和课后练习答案,涉及记录的使用、映射组的操作,以及顺序程序的错误处理和二进制型与位语法的讲解。详细解答包括记录的创建与更新,映射组的K => V语法,二进制转换规则,以及不同章节的课后问题解决策略。
摘要由CSDN通过智能技术生成

github地址

ch05-记录与映射组

  • 记录:可以给元组里的各个元素关联一个名称

  • 映射组:哈希表

  • rr(read records)

  • 映射组

    • K => V 更新或者新增
    • K := V 更新,新增会报错

练习答案

(1)

需要用到第三方库

parse_file(File) ->
   case file:read_file(File) of
      {
   ok, Content} -> case rfc4627:decode(Content) of
                          {
   ok, Result, _} -> Result;
                          {
   error, Reason} -> io:format("rfc4627:decode error:~p~n", [Reason])
                       end;
     {
   error, Reason} -> io:format("file:read_file error:~p~n", [Reason])
   end.

(2)

map_search_pred(Map, Pred) ->
  map_search_pred(Map, maps:keys(Map), Pred).

map_search_pred(Map, [Key|T], Pred) ->
  case Pred(Key, maps:get(Key, Map)) of
    true -> {
   Key, maps:get(Key, Map)};
    false -> map_search_pred(Map, T, Pred)
  end;
map_search_pred(_, [], _) ->
  io:format("not found~n").

pred(Key, Value) ->
  case (Key =:= Value) of
    true -> true;
    false -> false
  end.

测试:

19> answers:map_search_pred(#{ a => 1, b => 2, c => c}, fun(Key, Value) -> answers:pred(Key, Value) end).

ch06-顺序程序的错误处理

练习答案

(1)

-module(myfile).
-export([read/1])
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值