Skip to content

Commit

Permalink
1.3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
icidasset committed Dec 14, 2018
1 parent bcecb1f commit ccb90da
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 6 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
# Changelog


#### 1.3.0

- Added `append` function.


#### 1.2.1

- Does no longer drop leading zeros when using `fromHex` and/or `toHex`.
Expand Down
29 changes: 27 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,37 @@ Work with sequences of [binary numbers](https://en.wikipedia.org/wiki/Binary_num
..> |> Binary.shiftRightBy 1
..> |> Binary.toDecimal
4
```

```elm
>>> 4
..> |> Binary.fromDecimal
..> |> Binary.shiftLeftBy 1
..> |> Binary.toIntegers
[ 1, 0, 0, 0 ]
```


### Convertors

- Hexadecimal
- Decimal
- Integers
- Booleans

###### TODO

- Bytes
- Strings


### Operations

- Basics: and, or, xor, not (complement)
- Shifting: left & right shift, left & right rotation
- Maths: add, subtract



### Utilities

- Collections: append, chunksOf, concat, dropLeadingZeros
- Sizing: ensureBits, makeIsomorphic, width
2 changes: 1 addition & 1 deletion docs.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
[{"name":"Binary","comment":"\n\n@docs Bits\n\n\n# Convertors\n\n@docs fromHex, toHex, fromDecimal, toDecimal, fromIntegers, toIntegers, fromBooleans, toBooleans\n\n\n# Bitwise Operators\n\n@docs and, or, xor, not\n\n\n# Bit Shifting\n\n@docs shiftLeftBy, shiftRightBy, shiftRightZfBy, rotateLeftBy, rotateRightBy\n\n\n# Mathematical Operators\n\n@docs add, subtract\n\n\n# Utilities\n\n@docs chunksOf, concat, dropLeadingZeros, ensureBits, makeIsometric, width\n\n","unions":[{"name":"Bits","comment":" **The binary sequence.**\n\nUse convertors to make `Bits`.\n\n Binary.fromIntegers [ 0, 1, 0, 1 ]\n\n","args":[],"cases":[]}],"aliases":[],"values":[{"name":"add","comment":" Add two sets of bits together.\n\n -- ADD 1011\n -- 1011\n -- = 10110\n\n >>> add\n ..> (fromIntegers [ 1, 0, 1, 1 ])\n ..> (fromIntegers [ 1, 0, 1, 1 ])\n fromIntegers [ 1, 0, 1, 1, 0 ]\n\n >>> add\n ..> (fromIntegers [ 1, 1, 1, 0, 1 ])\n ..> (fromIntegers [ 1, 0, 1, 0 ])\n fromIntegers [ 1, 0, 0, 1, 1, 1 ]\n\n","type":"Binary.Bits -> Binary.Bits -> Binary.Bits"},{"name":"and","comment":" AND operator.\n\n -- 0101 (decimal 5)\n -- AND 0011 (decimal 3)\n -- = 0001 (decimal 1)\n\n >>> Binary.and\n ..> (fromHex \"5\")\n ..> (fromHex \"3\")\n ensureBits 3 (fromHex \"1\")\n\n","type":"Binary.Bits -> Binary.Bits -> Binary.Bits"},{"name":"chunksOf","comment":" Split the binary sequence in multiple chunks.\n\n >>> fromIntegers [ 1, 0, 0, 0, 1, 0, 1, 0 ]\n ..> |> chunksOf 4\n ..> |> List.map toIntegers\n [ [ 1, 0, 0, 0 ]\n , [ 1, 0, 1, 0 ]\n ]\n\n","type":"Basics.Int -> Binary.Bits -> List.List Binary.Bits"},{"name":"concat","comment":" Concat multiple binary sequences.\n\n >>> [ fromIntegers [ 1, 0, 0, 0 ]\n ..> , fromIntegers [ 0, 1, 0, 1 ]\n ..> ]\n ..> |> concat\n ..> |> toDecimal\n 133\n\n","type":"List.List Binary.Bits -> Binary.Bits"},{"name":"dropLeadingZeros","comment":" Drops the leading zeros of a binary sequence.\n\n >>> dropLeadingZeros (fromIntegers [ 0, 0, 1, 0 ])\n fromIntegers [ 1, 0 ]\n\n","type":"Binary.Bits -> Binary.Bits"},{"name":"ensureBits","comment":" Ensure the binary sequence length is of certain size.\n\n >>> ensureBits 4 (fromIntegers [ 1, 0 ])\n fromIntegers [ 0, 0, 1, 0 ]\n\n","type":"Basics.Int -> Binary.Bits -> Binary.Bits"},{"name":"fromBooleans","comment":" Convert a list of booleans to `Bits`.\n\n >>> fromBooleans [ True, False, False, False ] |> toHex\n \"8\"\n\n","type":"List.List Basics.Bool -> Binary.Bits"},{"name":"fromDecimal","comment":" Convert a decimal to `Bits`.\n\n >>> fromDecimal 8 |> toIntegers\n [ 1, 0, 0, 0 ]\n\n","type":"Basics.Int -> Binary.Bits"},{"name":"fromHex","comment":" Convert a hex string to list of binary numbers.\n\n >>> fromHex \"8\" |> toIntegers\n [ 1, 0, 0, 0 ]\n\n","type":"String.String -> Binary.Bits"},{"name":"fromIntegers","comment":" Convert a list of integers to `Bits`.\n\nEverything below zero and zero itself becomes a `0` bit,\nand everything above zero becomes a `1` bit.\n\n >>> fromIntegers [ 1, 0, 0, 0 ] |> toHex\n \"8\"\n\n","type":"List.List Basics.Int -> Binary.Bits"},{"name":"makeIsometric","comment":" Makes two sequences isometric (equal in size).\n\n >>> makeIsometric\n ..> (fromIntegers [ 0, 1, 0 ])\n ..> (fromIntegers [ 1, 0, 0, 0 ])\n ( fromIntegers [ 0, 0, 1, 0 ]\n , fromIntegers [ 1, 0, 0, 0 ]\n )\n\n","type":"Binary.Bits -> Binary.Bits -> ( Binary.Bits, Binary.Bits )"},{"name":"not","comment":" NOT operator.\n\n -- NOT 0111 (decimal 7)\n -- = 1000 (decimal 8)\n\n >>> Binary.not\n ..> (fromIntegers [ 0, 1, 1, 1 ])\n fromIntegers [ 1, 0, 0, 0 ]\n\n","type":"Binary.Bits -> Binary.Bits"},{"name":"or","comment":" OR operator.\n\n -- 0101 (decimal 5)\n -- OR 0011 (decimal 3)\n -- = 0111 (decimal 7)\n\n >>> Binary.or\n ..> (fromHex \"5\")\n ..> (fromHex \"3\")\n fromHex \"7\"\n\n","type":"Binary.Bits -> Binary.Bits -> Binary.Bits"},{"name":"rotateLeftBy","comment":" Rotate a binary sequence to the left.\n\n_NOTE: Make sure your binary sequence is of the correct size before rotating!\nRotating 8 bits is not always the same as, for example, 16 bits._\n\n >>> rotateLeftBy 1 (ensureBits 32 <| fromHex \"17\")\n ensureBits 32 (fromHex \"2E\")\n\n >>> rotateLeftBy 2 (ensureBits 32 <| fromHex \"96\")\n ensureBits 32 (fromHex \"258\")\n\n","type":"Basics.Int -> Binary.Bits -> Binary.Bits"},{"name":"rotateRightBy","comment":" Rotate a binary sequence to the right.\n\n_NOTE: Make sure your binary sequence is of the correct size before rotating!\nRotating 8 bits is not always the same as, for example, 16 bits._\n\n >>> rotateRightBy 1 (ensureBits 64 <| fromHex \"17\")\n ensureBits 64 (fromHex \"800000000000000B\")\n\n >>> rotateRightBy 1 (ensureBits 32 <| fromHex \"96\")\n ensureBits 32 (fromHex \"4B\")\n\n >>> rotateRightBy 5 (ensureBits 32 <| fromHex \"96\")\n ensureBits 32 (fromHex \"B0000004\")\n\n","type":"Basics.Int -> Binary.Bits -> Binary.Bits"},{"name":"shiftLeftBy","comment":" Arithmetic/Logical left shift.\n\n -- LEFTSHIFT 00010111 (decimal 23)\n -- = 00101110 (decimal 46)\n\n >>> [ 0, 0, 0, 1, 0, 1, 1, 1 ]\n ..> |> fromIntegers\n ..> |> shiftLeftBy 1\n ..> |> toIntegers\n [ 0, 0, 1, 0, 1, 1, 1, 0 ]\n\n","type":"Basics.Int -> Binary.Bits -> Binary.Bits"},{"name":"shiftRightBy","comment":" Arithmetic right shift.\n\n -- ARI-RIGHTSHIFT 10010111 (decimal 151)\n -- = 11001011 (decimal 203)\n\n >>> [ 1, 0, 0, 1, 0, 1, 1, 1 ]\n ..> |> fromIntegers\n ..> |> shiftRightBy 1\n ..> |> toIntegers\n [ 1, 1, 0, 0, 1, 0, 1, 1 ]\n\n","type":"Basics.Int -> Binary.Bits -> Binary.Bits"},{"name":"shiftRightZfBy","comment":" Logical right shift.\n\n -- LOG-RIGHTSHIFT 10010111 (decimal 151)\n -- = 00001011 (decimal 11)\n\n >>> [ 0, 0, 0, 1, 0, 1, 1, 1 ]\n ..> |> fromIntegers\n ..> |> shiftRightZfBy 1\n ..> |> toIntegers\n [ 0, 0, 0, 0, 1, 0, 1, 1 ]\n\n","type":"Basics.Int -> Binary.Bits -> Binary.Bits"},{"name":"subtract","comment":" Subtract two sets of bits from each other.\n\n -- SUBTRACT 1011\n -- 11\n -- = 1010\n\n >>> subtract\n ..> (fromIntegers [ 1, 0, 1, 1 ])\n ..> (fromIntegers [ 1, 1 ])\n fromIntegers [ 1, 0, 0, 0 ]\n\n >>> subtract\n ..> (fromIntegers [ 1, 0, 0, 0, 1 ])\n ..> (fromIntegers [ 0, 0, 1, 0, 0 ])\n fromIntegers [ 0, 1, 1, 0, 1 ]\n\n","type":"Binary.Bits -> Binary.Bits -> Binary.Bits"},{"name":"toBooleans","comment":" Convert `Bits` to a list of booleans.\n\n >>> toBooleans <| fromHex \"8\"\n [ True, False, False, False ]\n\n","type":"Binary.Bits -> List.List Basics.Bool"},{"name":"toDecimal","comment":" Convert `Bits` to a decimal.\n\n >>> toDecimal <| fromIntegers [ 1, 0, 0, 0 ]\n 8\n\n","type":"Binary.Bits -> Basics.Int"},{"name":"toHex","comment":" Convert a list of binary numbers to a hex string.\n\n >>> toHex <| fromIntegers [ 1, 0, 0, 0 ]\n \"8\"\n\n","type":"Binary.Bits -> String.String"},{"name":"toIntegers","comment":" Convert `Bits` to a list of integers.\n\n >>> toIntegers <| fromHex \"8\"\n [ 1, 0, 0, 0 ]\n\n","type":"Binary.Bits -> List.List Basics.Int"},{"name":"width","comment":" Get the amount of bits in a binary sequence.\n\n >>> fromIntegers [ 1, 0, 0, 0 ]\n ..> |> width\n 4\n\n","type":"Binary.Bits -> Basics.Int"},{"name":"xor","comment":" XOR operator.\n\n -- 0101 (decimal 5)\n -- XOR 0011 (decimal 3)\n -- = 0110 (decimal 6)\n\n >>> Binary.xor\n ..> (fromHex \"5\")\n ..> (fromHex \"3\")\n fromHex \"6\"\n\n","type":"Binary.Bits -> Binary.Bits -> Binary.Bits"}],"binops":[]}]
[{"name":"Binary","comment":"\n\n@docs Bits\n\n\n# Convertors\n\n@docs fromHex, toHex, fromDecimal, toDecimal, fromIntegers, toIntegers, fromBooleans, toBooleans\n\n\n# Bitwise Operators\n\n@docs and, or, xor, not\n\n\n# Bit Shifting\n\n@docs shiftLeftBy, shiftRightBy, shiftRightZfBy, rotateLeftBy, rotateRightBy\n\n\n# Mathematical Operators\n\n@docs add, subtract\n\n\n# Utilities\n\n@docs append, chunksOf, concat, dropLeadingZeros, ensureBits, makeIsometric, width\n\n","unions":[{"name":"Bits","comment":" **The binary sequence.**\n\nUse convertors to make `Bits`.\n\n Binary.fromIntegers [ 0, 1, 0, 1 ]\n\n","args":[],"cases":[]}],"aliases":[],"values":[{"name":"add","comment":" Add two sets of bits together.\n\n -- ADD 1011\n -- 1011\n -- = 10110\n\n >>> add\n ..> (fromIntegers [ 1, 0, 1, 1 ])\n ..> (fromIntegers [ 1, 0, 1, 1 ])\n fromIntegers [ 1, 0, 1, 1, 0 ]\n\n >>> add\n ..> (fromIntegers [ 1, 1, 1, 0, 1 ])\n ..> (fromIntegers [ 1, 0, 1, 0 ])\n fromIntegers [ 1, 0, 0, 1, 1, 1 ]\n\n","type":"Binary.Bits -> Binary.Bits -> Binary.Bits"},{"name":"and","comment":" AND operator.\n\n -- 0101 (decimal 5)\n -- AND 0011 (decimal 3)\n -- = 0001 (decimal 1)\n\n >>> Binary.and\n ..> (fromHex \"5\")\n ..> (fromHex \"3\")\n ensureBits 3 (fromHex \"1\")\n\n","type":"Binary.Bits -> Binary.Bits -> Binary.Bits"},{"name":"append","comment":" Merge two binary sequences.\n\n >>> append\n ..> (fromIntegers [ 1, 0, 0, 0 ])\n ..> (fromIntegers [ 1, 0, 1, 0 ])\n fromIntegers [ 1, 0, 0, 0, 1, 0, 1, 0 ]\n\n","type":"Binary.Bits -> Binary.Bits -> Binary.Bits"},{"name":"chunksOf","comment":" Split the binary sequence in multiple chunks.\n\n >>> fromIntegers [ 1, 0, 0, 0, 1, 0, 1, 0 ]\n ..> |> chunksOf 4\n ..> |> List.map toIntegers\n [ [ 1, 0, 0, 0 ]\n , [ 1, 0, 1, 0 ]\n ]\n\n","type":"Basics.Int -> Binary.Bits -> List.List Binary.Bits"},{"name":"concat","comment":" Concat multiple binary sequences.\n\n >>> [ fromIntegers [ 1, 0, 0, 0 ]\n ..> , fromIntegers [ 0, 1, 0, 1 ]\n ..> ]\n ..> |> concat\n ..> |> toDecimal\n 133\n\n","type":"List.List Binary.Bits -> Binary.Bits"},{"name":"dropLeadingZeros","comment":" Drops the leading zeros of a binary sequence.\n\n >>> dropLeadingZeros (fromIntegers [ 0, 0, 1, 0 ])\n fromIntegers [ 1, 0 ]\n\n","type":"Binary.Bits -> Binary.Bits"},{"name":"ensureBits","comment":" Ensure the binary sequence length is of certain size.\n\n >>> ensureBits 4 (fromIntegers [ 1, 0 ])\n fromIntegers [ 0, 0, 1, 0 ]\n\n","type":"Basics.Int -> Binary.Bits -> Binary.Bits"},{"name":"fromBooleans","comment":" Convert a list of booleans to `Bits`.\n\n >>> fromBooleans [ True, False, False, False ] |> toHex\n \"8\"\n\n","type":"List.List Basics.Bool -> Binary.Bits"},{"name":"fromDecimal","comment":" Convert a decimal to `Bits`.\n\n >>> fromDecimal 8 |> toIntegers\n [ 1, 0, 0, 0 ]\n\n","type":"Basics.Int -> Binary.Bits"},{"name":"fromHex","comment":" Convert a hex string to list of binary numbers.\n\n >>> fromHex \"8\" |> toIntegers\n [ 1, 0, 0, 0 ]\n\n","type":"String.String -> Binary.Bits"},{"name":"fromIntegers","comment":" Convert a list of integers to `Bits`.\n\nEverything below zero and zero itself becomes a `0` bit,\nand everything above zero becomes a `1` bit.\n\n >>> fromIntegers [ 1, 0, 0, 0 ] |> toHex\n \"8\"\n\n","type":"List.List Basics.Int -> Binary.Bits"},{"name":"makeIsometric","comment":" Makes two sequences isometric (equal in size).\n\n >>> makeIsometric\n ..> (fromIntegers [ 0, 1, 0 ])\n ..> (fromIntegers [ 1, 0, 0, 0 ])\n ( fromIntegers [ 0, 0, 1, 0 ]\n , fromIntegers [ 1, 0, 0, 0 ]\n )\n\n","type":"Binary.Bits -> Binary.Bits -> ( Binary.Bits, Binary.Bits )"},{"name":"not","comment":" NOT operator.\n\n -- NOT 0111 (decimal 7)\n -- = 1000 (decimal 8)\n\n >>> Binary.not\n ..> (fromIntegers [ 0, 1, 1, 1 ])\n fromIntegers [ 1, 0, 0, 0 ]\n\n","type":"Binary.Bits -> Binary.Bits"},{"name":"or","comment":" OR operator.\n\n -- 0101 (decimal 5)\n -- OR 0011 (decimal 3)\n -- = 0111 (decimal 7)\n\n >>> Binary.or\n ..> (fromHex \"5\")\n ..> (fromHex \"3\")\n fromHex \"7\"\n\n","type":"Binary.Bits -> Binary.Bits -> Binary.Bits"},{"name":"rotateLeftBy","comment":" Rotate a binary sequence to the left.\n\n_NOTE: Make sure your binary sequence is of the correct size before rotating!\nRotating 8 bits is not always the same as, for example, 16 bits._\n\n >>> rotateLeftBy 1 (ensureBits 32 <| fromHex \"17\")\n ensureBits 32 (fromHex \"2E\")\n\n >>> rotateLeftBy 2 (ensureBits 32 <| fromHex \"96\")\n ensureBits 32 (fromHex \"258\")\n\n","type":"Basics.Int -> Binary.Bits -> Binary.Bits"},{"name":"rotateRightBy","comment":" Rotate a binary sequence to the right.\n\n_NOTE: Make sure your binary sequence is of the correct size before rotating!\nRotating 8 bits is not always the same as, for example, 16 bits._\n\n >>> rotateRightBy 1 (ensureBits 64 <| fromHex \"17\")\n ensureBits 64 (fromHex \"800000000000000B\")\n\n >>> rotateRightBy 1 (ensureBits 32 <| fromHex \"96\")\n ensureBits 32 (fromHex \"4B\")\n\n >>> rotateRightBy 5 (ensureBits 32 <| fromHex \"96\")\n ensureBits 32 (fromHex \"B0000004\")\n\n","type":"Basics.Int -> Binary.Bits -> Binary.Bits"},{"name":"shiftLeftBy","comment":" Arithmetic/Logical left shift.\n\n -- LEFTSHIFT 00010111 (decimal 23)\n -- = 00101110 (decimal 46)\n\n >>> [ 0, 0, 0, 1, 0, 1, 1, 1 ]\n ..> |> fromIntegers\n ..> |> shiftLeftBy 1\n ..> |> toIntegers\n [ 0, 0, 1, 0, 1, 1, 1, 0 ]\n\n","type":"Basics.Int -> Binary.Bits -> Binary.Bits"},{"name":"shiftRightBy","comment":" Arithmetic right shift.\n\n -- ARI-RIGHTSHIFT 10010111 (decimal 151)\n -- = 11001011 (decimal 203)\n\n >>> [ 1, 0, 0, 1, 0, 1, 1, 1 ]\n ..> |> fromIntegers\n ..> |> shiftRightBy 1\n ..> |> toIntegers\n [ 1, 1, 0, 0, 1, 0, 1, 1 ]\n\n","type":"Basics.Int -> Binary.Bits -> Binary.Bits"},{"name":"shiftRightZfBy","comment":" Logical right shift.\n\n -- LOG-RIGHTSHIFT 10010111 (decimal 151)\n -- = 00001011 (decimal 11)\n\n >>> [ 0, 0, 0, 1, 0, 1, 1, 1 ]\n ..> |> fromIntegers\n ..> |> shiftRightZfBy 1\n ..> |> toIntegers\n [ 0, 0, 0, 0, 1, 0, 1, 1 ]\n\n","type":"Basics.Int -> Binary.Bits -> Binary.Bits"},{"name":"subtract","comment":" Subtract two sets of bits from each other.\n\n -- SUBTRACT 1011\n -- 11\n -- = 1010\n\n >>> subtract\n ..> (fromIntegers [ 1, 0, 1, 1 ])\n ..> (fromIntegers [ 1, 1 ])\n fromIntegers [ 1, 0, 0, 0 ]\n\n >>> subtract\n ..> (fromIntegers [ 1, 0, 0, 0, 1 ])\n ..> (fromIntegers [ 0, 0, 1, 0, 0 ])\n fromIntegers [ 0, 1, 1, 0, 1 ]\n\n","type":"Binary.Bits -> Binary.Bits -> Binary.Bits"},{"name":"toBooleans","comment":" Convert `Bits` to a list of booleans.\n\n >>> toBooleans <| fromHex \"8\"\n [ True, False, False, False ]\n\n","type":"Binary.Bits -> List.List Basics.Bool"},{"name":"toDecimal","comment":" Convert `Bits` to a decimal.\n\n >>> toDecimal <| fromIntegers [ 1, 0, 0, 0 ]\n 8\n\n","type":"Binary.Bits -> Basics.Int"},{"name":"toHex","comment":" Convert a list of binary numbers to a hex string.\n\n >>> toHex <| fromIntegers [ 1, 0, 0, 0 ]\n \"8\"\n\n","type":"Binary.Bits -> String.String"},{"name":"toIntegers","comment":" Convert `Bits` to a list of integers.\n\n >>> toIntegers <| fromHex \"8\"\n [ 1, 0, 0, 0 ]\n\n","type":"Binary.Bits -> List.List Basics.Int"},{"name":"width","comment":" Get the amount of bits in a binary sequence.\n\n >>> fromIntegers [ 1, 0, 0, 0 ]\n ..> |> width\n 4\n\n","type":"Binary.Bits -> Basics.Int"},{"name":"xor","comment":" XOR operator.\n\n -- 0101 (decimal 5)\n -- XOR 0011 (decimal 3)\n -- = 0110 (decimal 6)\n\n >>> Binary.xor\n ..> (fromHex \"5\")\n ..> (fromHex \"3\")\n fromHex \"6\"\n\n","type":"Binary.Bits -> Binary.Bits -> Binary.Bits"}],"binops":[]}]
2 changes: 1 addition & 1 deletion elm.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"name": "icidasset/elm-binary",
"summary": "Work with binary data.",
"license": "MIT",
"version": "1.2.1",
"version": "1.3.0",
"exposed-modules": [
"Binary"
],
Expand Down
17 changes: 15 additions & 2 deletions src/Binary.elm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module Binary exposing
, and, or, xor, not
, shiftLeftBy, shiftRightBy, shiftRightZfBy, rotateLeftBy, rotateRightBy
, add, subtract
, chunksOf, concat, dropLeadingZeros, ensureBits, makeIsometric, width
, append, chunksOf, concat, dropLeadingZeros, ensureBits, makeIsometric, width
)

{-|
Expand Down Expand Up @@ -34,7 +34,7 @@ module Binary exposing
# Utilities
@docs chunksOf, concat, dropLeadingZeros, ensureBits, makeIsometric, width
@docs append, chunksOf, concat, dropLeadingZeros, ensureBits, makeIsometric, width
-}

Expand Down Expand Up @@ -543,6 +543,19 @@ subtract_ { bits, minuend, subtrahend } =
-- UTILITIES


{-| Merge two binary sequences.
>>> append
..> (fromIntegers [ 1, 0, 0, 0 ])
..> (fromIntegers [ 1, 0, 1, 0 ])
fromIntegers [ 1, 0, 0, 0, 1, 0, 1, 0 ]
-}
append : Bits -> Bits -> Bits
append (Bits a) (Bits b) =
Bits (List.append a b)


{-| Split the binary sequence in multiple chunks.
>>> fromIntegers [ 1, 0, 0, 0, 1, 0, 1, 0 ]
Expand Down

0 comments on commit ccb90da

Please sign in to comment.