[Erlang] Бинарные данные. Конкатенация
От: -Cheese-  
Дата: 05.12.14 15:33
Оценка:
Всем привет!
Написал тут функцию. Она по идее должна устанавливать битик в 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>> — падаем с бадаргом
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.