Accountnumberと等しい値のフィールドを持つレコードのリストからレコードを返す次のコードがあります。
lookup(AccountNumber, [#account{no=AccountNumber} = Rec | _]) ->
Rec;
lookup(AccountNumber, [_| T]) ->
lookup(AccountNumber, T);
lookup(AccountNumber, []) ->
not_found.
上記のコードは正常に機能しますが、次のコードを使用してフィルターに変換しようとすると、次のようになります。
lookup(AccountNumber, DBRef) ->
lists:filter(fun(#account{no=AccountNumber} = Rec) -> Rec end, DBRef).
次のエラーが発生しました:
** exception error: no case clause matching #account{no = 2,balance = 0,pin = undefined,name = "Ali",
transactions = []}
in function lists:'-filter/2-lc$^0/1-0-'/2 (lists.erl, line 1271)
エラーの理由は何ですか?