2015-06-23 2 views
0

Мне нужно создать программу, которая считывает номер с консоли и собирает их в список. Например, при входе:Соберите вход в список с помощью Erlang

1 
2 
3 
4 

программа должна вернуть [1, 2, 3, 4]. Алгоритм достаточно прост:

  • читать ввод
  • Если вход разве пустой толчок его в список
  • еще возвращаемый результат в списке

Я считаю, что программа должна выглядеть следующим образом (# для деталей, которые я не знаю, как писать):

read(L)-> 
    case io:fread("", "#what format") 
    #number case -> 
    read([N|L]) 
    #empty case -> 
    lists:reverse(L) 
    end. 
+0

Что вы пробовали до сих пор? Можете ли вы вставить любой код, который вы уже создали, в вопрос? – dethtron5000

+0

Связанные: http://stackoverflow.com/q/19097507/2541573 – Jubobs

+0

@ dethtron5000 обновлено – kharandziuk

ответ

1

Вы можете определить рекурсивную функцию как

-module(test). 
-compile(export_all). 

input(Acc) -> 
    Data = io:get_line(""), 
    Data2 = lists:sublist(Data, length(Data) - 1), 
    case string:len(Data2) of 
     0 -> 
      Acc; 
     _ -> 
      input(AcC++ [Data2]) 
    end. 

, который решает эту проблему:

rorra:~/erlang > erl 
Erlang/OTP 17 [erts-6.4] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] 

Eshell V6.4 (abort with ^G) 
1> c(test). 
{ok,test} 
2> test:input([]). 
hello 
world 

["hello","world"] 
3> 
+0

Спасибо большое! Можете ли вы порекомендовать хорошую статью (или книгу) о стандартной библиотеке erlang? С моей точки зрения документация действительно странная (это слишком описательно, а примеры глупы) – kharandziuk

+0

@kharandziuk Я действительно не знаю ни одного о стандартном io в Erlang, я читаю книгу Amstrong и узнаю, что у вас есть Erlang для отличного кода, а затем продолжаю я изучаю, преподавая, я строю erlang screencast, но на испанском языке, и для этого я пошел, используя разную документацию для модулей, и проверив исходный код различных модулей erlang (его открытый источник, чтобы вы могли проверить документацию и код модуля io), кроме этого, случайные блоги, к которым присоединяется google search – rorra

Смежные вопросы