Skip to main content
saved 4 bytes
Source Link
Arnauld
  • 205.5k
  • 21
  • 187
  • 670

JavaScript (ES7), 99 99  95 bytes

Expects (encoder_characters)(stream).

(d,v,i=0i=n=0)=>g=a=>=>g=a=>d[k=2**n-1]?g(a,n++):(i>7?0:v=v<<8|a.shift(i+=8),j=v>>(i-=n=-~Math.log2(d.length)=n)&2**n-1&k)?d[j-1]+g(a):a 

Try it online!Try it online!

JavaScript (ES7), 99 bytes

Expects (encoder_characters)(stream).

(d,v,i=0)=>g=a=>(i>7?0:v=v<<8|a.shift(i+=8),j=v>>(i-=n=-~Math.log2(d.length))&2**n-1)?d[j-1]+g(a):a 

Try it online!

JavaScript (ES7),  99  95 bytes

Expects (encoder_characters)(stream).

(d,v,i=n=0)=>g=a=>d[k=2**n-1]?g(a,n++):(i>7?0:v=v<<8|a.shift(i+=8),j=v>>(i-=n)&k)?d[j-1]+g(a):a 

Try it online!

Source Link
Arnauld
  • 205.5k
  • 21
  • 187
  • 670

JavaScript (ES7), 99 bytes

Expects (encoder_characters)(stream).

(d,v,i=0)=>g=a=>(i>7?0:v=v<<8|a.shift(i+=8),j=v>>(i-=n=-~Math.log2(d.length))&2**n-1)?d[j-1]+g(a):a 

Try it online!