Всем привет!
Написал тут функцию. Она по идее должна устанавливать битик в 1, если в отсортированном списке из fields присутствует с текущим индексом, и 0, если нету.
Не могу понять почему оно ругается badarg на выделенную строчку.
bitmap([Idx | Tail ], Idx, Bitmaps) ->
NewBitmap = <<Bitmaps/binary, 1:1>>,
bitmap(Tail, Idx+1, NewBitmap);
bitmap(_Fields, 65, Bitmaps) ->
<<Bitmaps/binary>>;
bitmap(Fields, Idx, Bitmaps) ->
NewBitmap = <<Bitmaps/binary, 0:1>>,
bitmap(Fields, Idx+1, NewBitmap).
функция вызывается так
bitmap([2,5,6], 1, <<>>)
В процессе происходит
Idx=0: Bitmap: <<>>
Idx=1: Bitmap: <<0:1>>
и в момент, когда пытаемся сделать <<Bitmaps/binary, 1:1>> — падаем с бадаргом