Packages
gleam_stdlib
0.19.3
1.0.3
1.0.2
1.0.1
1.0.0
0.71.0
0.70.0
0.69.0
0.68.1
0.68.0
0.67.1
0.67.0
0.65.0
0.64.0
0.63.2
0.63.1
0.63.0
0.62.1
0.62.0
0.61.0
0.60.0
0.59.0
0.58.0
0.57.0
0.56.0
0.55.0
0.54.0
0.53.0
0.52.0
0.51.0
0.50.0
0.49.0
0.48.0
0.47.0
0.46.0
0.45.0
0.44.0
0.43.0
0.42.0
0.41.0
0.40.0
0.39.0
0.38.0
0.37.0
0.36.0
0.35.1
0.35.0
0.34.0
0.33.1
0.33.0
0.32.1
0.32.0
0.31.0
0.30.2
0.30.1
0.30.0
0.29.2
0.29.1
0.29.0
0.28.2
0.28.1
0.28.0
0.27.0
0.26.1
0.26.0
0.25.0
0.24.0
0.23.0
0.22.3
0.22.2
0.22.1
0.22.0
0.21.0
0.20.0
0.19.3
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.18.0-rc1
0.17.1
0.17.0
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.1
0.10.0
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.4.0-rc1
0.3.1
0.3.0
0.2.0
retired
A standard library for the Gleam programming language
Current section
Files
Jump to
Current section
Files
src/gleam/io.gleam
/// Writes a string to standard output.
///
/// If you want your output to be printed on its own line see `println`.
///
/// ## Example
///
/// ```
/// > io.print("Hi mum")
/// // -> Hi mum
/// Nil
/// ```
///
pub fn print(string: String) -> Nil {
do_print(string)
}
if erlang {
external fn do_print(string: String) -> Nil =
"gleam_stdlib" "print"
}
if javascript {
external fn do_print(String) -> Nil =
"../gleam_stdlib.mjs" "print"
}
/// 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 {
do_println(string)
}
if erlang {
external fn do_println(string: String) -> Nil =
"gleam_stdlib" "println"
}
if javascript {
external fn do_println(String) -> Nil =
"../gleam_stdlib.mjs" "log"
}
/// Prints 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) -> anything {
debug_print(term)
term
}
if erlang {
fn debug_print(term: anything) -> DoNotLeak {
erlang_fwrite("~tp\n", [term])
}
}
if javascript {
external fn debug_print(anything) -> Nil =
"../gleam_stdlib.mjs" "debug"
}
if erlang {
external type DoNotLeak
external fn erlang_fwrite(String, List(a)) -> DoNotLeak =
"io" "fwrite"
}