aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gleam/io.gleam48
1 files changed, 44 insertions, 4 deletions
diff --git a/src/gleam/io.gleam b/src/gleam/io.gleam
index f4c1ad5..9fef99a 100644
--- a/src/gleam/io.gleam
+++ b/src/gleam/io.gleam
@@ -1,6 +1,6 @@
external type DoNotLeak
-external fn erl_print(String) -> DoNotLeak =
+external fn erl_print(String, List(a)) -> DoNotLeak =
"io" "fwrite"
/// Writes a string to standard output.
@@ -8,10 +8,50 @@ external fn erl_print(String) -> DoNotLeak =
/// ## Example
///
/// > io.print("Hi mum")
+/// // -> Hi mum
/// Nil
-/// //=> Hi mum
-///
+///
pub fn print(string: String) -> Nil {
- erl_print(string)
+ erl_print(string, [])
+ Nil
+}
+
+/// Writes a string to standard output, appending a newline to the end.
+///
+/// ## Example
+///
+/// > io.println("Hi mum")
+/// // -> Hi mum
+/// Nil
+///
+pub fn println(string: String) -> Nil {
+ erl_print("~ts\n", [string])
+ Nil
+}
+
+/// Print a value to standard output using Erlang syntax.
+///
+/// The value is returned after being printed so it can be used in pipelines.
+///
+/// ## Example
+///
+/// > io.debug("Hi mum")
+/// // -> <<"Hi mum">>
+/// "Hi mum"
+///
+/// > io.debug(Ok(1))
+/// // -> {ok, 1}
+/// Ok(1)
+///
+/// > import list
+/// > [1, 2]
+/// > |> list.map(fn(x) { x + 1 })
+/// > |> io.debug
+/// > |> list.map(fn(x) { x * 2 })
+/// // -> [2, 3]
+/// [4, 6]
+///
+pub fn debug(term: anything) -> Nil {
+ erl_print("~tp\n", [term])
Nil
}