init commit
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
(ns io
|
||||
"Erlang :io module — I/O protocol operations.
|
||||
|
||||
In CljElixir: (io/format \"Hello ~s!~n\" [\"world\"]), etc.
|
||||
Lower-level than Elixir's IO module. Uses charlists and format strings.")
|
||||
|
||||
(defn format
|
||||
"Formatted output (like C printf).
|
||||
(io/format \"Hello ~s!~n\" [\"world\"]) ;=> prints 'Hello world!\\n'
|
||||
(io/format device \"~p~n\" [term]) ;=> pretty-print to device
|
||||
|
||||
Common format specs:
|
||||
~s string ~w write (Erlang term)
|
||||
~p pretty-print ~f float
|
||||
~e scientific ~b integer base 10
|
||||
~.Xb integer base X ~n newline
|
||||
~c character ~i ignore"
|
||||
([format args])
|
||||
([device format args]))
|
||||
|
||||
(defn fwrite
|
||||
"Like format but returns :ok or {:error reason}."
|
||||
([format args])
|
||||
([device format args]))
|
||||
|
||||
(defn get-line
|
||||
"Reads a line from standard input. Returns charlist or :eof.
|
||||
(io/get-line \"prompt> \")"
|
||||
([prompt])
|
||||
([device prompt]))
|
||||
|
||||
(defn put-chars
|
||||
"Writes characters to the IO device.
|
||||
(io/put-chars \"hello\")"
|
||||
([chars])
|
||||
([device chars]))
|
||||
|
||||
(defn nl
|
||||
"Writes a newline.
|
||||
(io/nl)"
|
||||
([])
|
||||
([device]))
|
||||
|
||||
(defn read
|
||||
"Reads an Erlang term from input. Returns {:ok term} or {:error reason}.
|
||||
(io/read \"enter term> \")"
|
||||
([prompt])
|
||||
([device prompt]))
|
||||
|
||||
(defn write
|
||||
"Writes an Erlang term.
|
||||
(io/write {:a 1}) ;=> prints '{a,1}'"
|
||||
([term])
|
||||
([device term]))
|
||||
|
||||
(defn scan-erl-form
|
||||
"Scans an Erlang form from input."
|
||||
([prompt])
|
||||
([device prompt])
|
||||
([device prompt start-line]))
|
||||
|
||||
(defn parse-erl-form
|
||||
"Parses an Erlang form from input."
|
||||
([prompt])
|
||||
([device prompt])
|
||||
([device prompt start-line]))
|
||||
|
||||
(defn setopts
|
||||
"Sets IO device options.
|
||||
(io/setopts [{:encoding :unicode}])"
|
||||
([opts])
|
||||
([device opts]))
|
||||
|
||||
(defn getopts
|
||||
"Gets IO device options."
|
||||
([])
|
||||
([device]))
|
||||
|
||||
(defn columns
|
||||
"Returns the terminal column count.
|
||||
(io/columns) ;=> {:ok 120}"
|
||||
([])
|
||||
([device]))
|
||||
|
||||
(defn rows
|
||||
"Returns the terminal row count.
|
||||
(io/rows) ;=> {:ok 40}"
|
||||
([])
|
||||
([device]))
|
||||
|
||||
(defn printable-range
|
||||
"Returns the printable character range (:unicode or :latin1)."
|
||||
[])
|
||||
Reference in New Issue
Block a user