Skip to content

Instantly share code, notes, and snippets.

@bjhaid
Created October 31, 2016 02:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bjhaid/965f77de7e3405f87e54c2ddbf625cd7 to your computer and use it in GitHub Desktop.
Save bjhaid/965f77de7e3405f87e54c2ddbf625cd7 to your computer and use it in GitHub Desktop.

works in erlang

1> Bbsl = fun(Bin,Shift) -> <<_:Shift,Rest/bits>> = Bin, <<Rest/bits,0:Shift>> end.
#Fun<erl_eval.12.50752066>

fails in elixir (1.3.4)

iex(4)> bbsl = fn(bin, shift) -> <<_::shift, rest/bits>> = bin; <<rest/bits, 0::shift>> end 
** (CompileError) iex:4: unknown bitstring specifier shift()
    (elixir) src/elixir_bitstring.erl:29: :elixir_bitstring.expand_bitstr/4
    (elixir) src/elixir_bitstring.erl:10: :elixir_bitstring.expand/3

works in elixir (1.3.4)

iex(3)> bbsl = fn(bin) -> <<_::8, rest>> = bin; <<rest, 0::8>> end          
#Function<6.50752066/1 in :erl_eval.expr/5>

fails in elixir (1.3.4)

iex(4)> bbsl = fn(bin, shift) -> <<_::shift, rest>> = bin; <<rest, 0::shift>> end
** (CompileError) iex:4: unknown bitstring specifier shift()
    (elixir) src/elixir_bitstring.erl:29: :elixir_bitstring.expand_bitstr/4
    (elixir) src/elixir_bitstring.erl:10: :elixir_bitstring.expand/3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment