init commit
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
(ns Integer
|
||||
"Elixir Integer module — integer operations.
|
||||
|
||||
In CljElixir: (Integer/to-string 255 16), (Integer/digits 123), etc.")
|
||||
|
||||
(defn to-string
|
||||
"Converts integer to string, optionally in a given base.
|
||||
(Integer/to-string 123) ;=> \"123\"
|
||||
(Integer/to-string 255 16) ;=> \"FF\""
|
||||
([integer])
|
||||
([integer base]))
|
||||
|
||||
(defn to-charlist
|
||||
"Converts integer to charlist.
|
||||
(Integer/to-charlist 123) ;=> '123'"
|
||||
([integer])
|
||||
([integer base]))
|
||||
|
||||
(defn parse
|
||||
"Parses a string into an integer. Returns {integer rest} or :error.
|
||||
(Integer/parse \"123abc\") ;=> {123 \"abc\"}
|
||||
(Integer/parse \"FF\" 16) ;=> {255 \"\"}
|
||||
(Integer/parse \"nope\") ;=> :error"
|
||||
([string])
|
||||
([string base]))
|
||||
|
||||
(defn digits
|
||||
"Returns the digits of `integer` as a list.
|
||||
(Integer/digits 123) ;=> [1 2 3]
|
||||
(Integer/digits 255 16) ;=> [15 15]"
|
||||
([integer])
|
||||
([integer base]))
|
||||
|
||||
(defn undigits
|
||||
"Converts a list of digits back to an integer.
|
||||
(Integer/undigits [1 2 3]) ;=> 123
|
||||
(Integer/undigits [15 15] 16) ;=> 255"
|
||||
([digits])
|
||||
([digits base]))
|
||||
|
||||
(defn pow
|
||||
"Returns `base` raised to `exponent` (integer exponentiation).
|
||||
(Integer/pow 2 10) ;=> 1024"
|
||||
[base exponent])
|
||||
|
||||
(defn gcd
|
||||
"Returns the greatest common divisor.
|
||||
(Integer/gcd 12 8) ;=> 4"
|
||||
[integer1 integer2])
|
||||
|
||||
(defn mod
|
||||
"Computes modulo (always non-negative for positive divisor).
|
||||
(Integer/mod 10 3) ;=> 1
|
||||
(Integer/mod -5 3) ;=> 1 (differs from rem)"
|
||||
[dividend divisor])
|
||||
|
||||
(defn floor-div
|
||||
"Integer division rounded towards negative infinity.
|
||||
(Integer/floor-div 10 3) ;=> 3
|
||||
(Integer/floor-div -5 3) ;=> -2"
|
||||
[dividend divisor])
|
||||
|
||||
(defn is-odd
|
||||
"Returns true if `integer` is odd. Allowed in guards.
|
||||
(Integer/is-odd 3) ;=> true"
|
||||
[integer])
|
||||
|
||||
(defn is-even
|
||||
"Returns true if `integer` is even. Allowed in guards.
|
||||
(Integer/is-even 4) ;=> true"
|
||||
[integer])
|
||||
|
||||
(defn extended-gcd
|
||||
"Returns {gcd, s, t} such that gcd = s*a + t*b (Bezout's identity).
|
||||
(Integer/extended-gcd 12 8) ;=> {4 1 -1}"
|
||||
[a b])
|
||||
|
||||
(defn to-string-padded
|
||||
"Converts integer to string with zero-padding."
|
||||
[integer width])
|
||||
Reference in New Issue
Block a user