blob: 7b7c8db6e045647aaa007ccc8802869d5f4e8d08 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import gleam/io
pub fn main() {
let add_one = fn(x) { x + 1 }
let exclaim = fn(x) { x <> "!" }
// Invalid, Int and String are not the same type
// twice(10, exclaim)
// Here the type variable is replaced by the type Int
io.debug(twice(10, add_one))
// Here the type variable is replaced by the type String
io.debug(twice("Hello", exclaim))
}
// The name `value` refers to the same type multiple times
fn twice(argument: value, function: fn(value) -> value) -> value {
function(function(argument))
}
|