2017-06-23 44 views
0

我試圖簡單地將理解的結果打印到使用Elixir的控制檯。以下是我試圖打印的問題和代碼:瞭解使用Elixir的IO.puts

range = 1..999 

multiple_of_3? = fn(n) -> rem(n, 3) == 0 end 
multiple_of_5? = fn(n) -> rem(n, 5) == 0 end 
import Integer 
IO.puts for n <- range, multiple_of_3?.(n), multiple_of_5?.(n), do: n 

非常簡單。唯一的問題是,當我從控制檯運行這個,這是我回來的:

<KZix¥´ÃÒáðÿĎĝĬĻŊřŨŷƆƕƤƳǂǑǠǯǾȍȜȫȺɉɘɧɶʅʔʣʲˁː˟ˮ˽̛̪̹͈̌͗ͦ͵΄Γ΢απϏϞ 

這不是我正在尋找不必說的。爲什麼這不打印實際的號碼

+0

的[如何打印出的藥劑地圖的數組值?]可能的複製(https://stackoverflow.com/questions/32804904/how-to-print-out-a-maps-array-values -in-elixir) –

回答

1

您是否意思是IO.inspect而不是IO.putsIO.puts將把列表解釋爲字符數據。

iex(15)> IO.puts [15,30,45] 
^O^^- 
:ok 
iex(14)> IO.puts <<15,30,45>> 
^O^^- 
:ok 
+0

'IO.puts'不會_interpret_任何東西,它會收到一個charlist作爲參數並將其吐出。 – mudasobwa

+0

@mudasobwa感謝您的評論。這取決於你如何解釋這個詞,「解釋」。 :) –