link regexp link io procedure join(list, sep) output := list[1] every i := 2 to *list do output ||:= sep || list[i] return output end procedure read_words(prompt) words := [] while put(words, (writes(prompt), read())) return words end procedure the_answer() return 2^3 * 5 + 2 end procedure make_greeter(target) c := create write("Hello, ", target@&source, "!") @c return c end procedure hostname() in := open("/etc/hostname") result := read(in) close(in) return result end procedure fail_gracefully() &error := -1 runerr(42, "test") | return &errorvalue || ": " || &errornumber end procedure splat(op, args) return op ! args end procedure tokenize(input) re := RePat("(\\s*([-+*/()]|\\d+))") tokens := [] i := 1 while ReFind(re, input, i) do { i +:= *(Re_ParenGroups[1]) put(tokens, Re_ParenGroups[2]) } return tokens end procedure keys(dict) result := [] every put(result, key(dict)) return result end record rect(size) procedure now(a[]) return (now := pathload("libcfunc.so", "Cnow")) !a end