【问题标题】:Erlang: Splitting consult() return value into sublistsErlang:将咨询()返回值拆分为子列表
【发布时间】:2018-10-02 19:18:39
【问题描述】:

我有一个calls.txt:

{约翰,[吉尔,乔,鲍勃]}。

{吉尔,[鲍勃,乔,鲍勃]}。

{苏,[吉尔,吉尔,吉尔,鲍勃,吉尔]}。

{鲍勃,[约翰]}。

{乔,[苏]}。

我有一个函数 read()

read() -> 
    List = file:consult("calls.txt"),

调用 read() 返回一个包含 5 个元组的列表

{ok,[{john,[jill,joe,bob]},
 {jill,[bob,joe,bob]},
 {sue,[jill,jill,jill,bob,jill]},
 {bob,[john]},
 {joe,[sue]}]}

我想将每个元组绑定到一个变量 (X1,X2,X3,X4,X5)

我尝试将列表分成 4 个头和一个尾

 read() -> 
List = file:consult("calls.txt"),
[X1,X2,X3,X4|X5] = List.

但是,它给了我错误:

** exception error: no match of right hand side value 

如何将consult()返回的列表拆分成5个元组?

【问题讨论】:

    标签: list erlang tuples


    【解决方案1】:

    返回值是{ok, <list of 5 elements>}所以你需要使用的模式是{ok, [X1, X2, X3, X4, X5]}

    {ok, [X1, X2, X3, X4, X5]} = file:consult("calls.txt").
    

    【讨论】:

      猜你喜欢
      • 2011-03-28
      • 1970-01-01
      • 2014-07-07
      • 2011-05-26
      • 1970-01-01
      • 1970-01-01
      • 2015-05-13
      • 2014-04-01
      • 2012-05-28
      相关资源
      最近更新 更多