Erlang入門教程 - 8. 在終端上輸出

如果上面這些例子能格式化輸出一些內容就爽了,所以下面這個例子教我們一種的方法,使用io:format函數輸出。像其他函數一樣,你也可以在shell中測試io:format函數。

31> io:format("hello world~n", []).nhello worldnokn32> io:format("this outputs one Erlang term: ~w~n", [hello]).nthis outputs one Erlang term: hellonokn33> io:format("this outputs two Erlang terms: ~w~w~n", [hello, world]).nthis outputs two Erlang terms: helloworldnokn34> io:format("this outputs two Erlang terms: ~w ~w~n", [hello, world]).nthis outputs two Erlang terms: hello worldnokn

函數format/2(即格式化兩個參數)接受兩個列表參數。第一個列表總是用引號" "包含的。它是什麼樣就輸出什麼樣,除了~w有點特別,它表示一個佔位符,第二個列表參數將會代替這些佔位符。每個 ~n都被替換為一個新行。如果一切順利,函數io:format/2 本身返回一個原子(atom)ok。像其他Erlang函數一樣,如果有錯誤發生它就會crash。這不是Erlang的缺陷,這是有意為之。Erlang有一個複雜的錯誤處理機制,這點會在後面說明。 作為一個練習,試試讓io:format crash,應該很簡單吧。 但是請注意雖然io:format 函數crash了,Erlang shell卻不會crash。


推薦閱讀:

編程範式與系統設計
幻想中的Haskell - Compiling Combinator
函數式又是函數式
Python 為什麼不能序列化函數閉包?
Speak my true name, summon my constructor

TAG:Erlang编程语言 | 函数式编程 | 编程语言 |