Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Haskell
Перезагрузить страницу Чтение нескольких чисел из строки
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Jean-Esther Jean-Esther вне форума
Member
 
Сообщений: 22
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.03.2009
По умолчанию Чтение нескольких чисел из строки - 24.02.2012, 16:27

Внезапно возник вопрос с вводом-выводом.
Есть функции getChar::IO Char и getLine::IO String, которые читают символ/строку из входного потока. Есть readLn::Read a=>IO a, которая использует getLine и readIO.
Хочу считать несколько чисел, введенных через пробел или другой разделитель. Код
haskell Код:
let r = readLn :: IO Int in do {a<-r; b<-r; return (a+b)}
в GHCi выдает ошибку readIO: no parse на тесте "23 32"<Enter>. Есть ли какие функции для этой задачи, или проще взять getLine и пропарсить строку?
Ответить с цитированием
  (#2 (permalink)) Старый
Hydralisk Hydralisk вне форума
Новичок
 
Аватар для Hydralisk
 
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 25.07.2011
По умолчанию 24.02.2012, 17:43

haskell Код:
s <- getLine
    let rs = (map read (words s)) :: [Int]
для одной строки.
А вот для нескольких:
haskell Код:
x <- getContents
let (k:l:m:n:d:_) = (map read (words x))::[Int]
Ответить с цитированием
Пользователь сказал cпасибо:
Jean-Esther (24.02.2012)
  (#3 (permalink)) Старый
korvin korvin вне форума
Member
 
Аватар для korvin
 
Сообщений: 337
Сказал(а) спасибо: 1
Поблагодарили 15 раз(а) в 15 сообщениях
Регистрация: 25.01.2010
По умолчанию 02.03.2012, 00:14

Цитата:
Сообщение от Hydralisk Посмотреть сообщение
А вот для нескольких:
haskell Код:
x <- getContents
let (k:l:m:n:d:_) = (map read (words x))::[Int]
А почему ты в паттерне предполагаешь, что первые список содержит не менее 4-х элементов?


Object-oriented design is the roman numerals of computing. — Rob Pike
Ответить с цитированием
  (#4 (permalink)) Старый
Jean-Esther Jean-Esther вне форума
Member
 
Сообщений: 22
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.03.2009
По умолчанию 02.03.2012, 01:20

Не то здесь существенно. Важно, что функция (перефраз.) fmap (map read . words) getContents :: (Read a) => [a] позволяет получить массив того, что надо, а паттерн нужен так, для примера.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно разобрать программу для перевода списка арабских чисел в список римских чисел. RuslanTM Prolog 2 18.12.2011 17:04
Из множества целых чисел 1..100 выделить множество чисел, являющихся, в свою очере Tormiz61 Pascal 4 18.06.2011 15:07
Отсортировать строки массива целых чисел по убыванию. Шейкерная сортировка. Юсик Pascal 0 20.11.2010 01:45
Задача по Турбо Прологу. Чтение из файла, преобразование строки в список, запись в БД theoo Prolog 4 08.11.2010 12:05
Добавить в конец первой строки, последние n2-n1 слов второй строки gika111 Вопросы начинающих программистов 1 20.01.2010 16:41
Задача на строки случайных чисел alyonka89 Pascal 9 05.08.2008 02:05
Чтение из файла вещественных чисел simsalbim С/С++ 5 07.12.2006 11:01
StrinGrid-чтение строки и стобца выбранной ячейки D.D.G. C++ Builder 1 10.08.2006 14:38
Запоздалое чтение с командной строки Skol С/С++ 4 21.07.2006 12:21
чтение строки из файла imported_kep PHP 5 01.08.2005 02:50
Сложить поэлементно две строки чисел T-Rex Вопросы начинающих программистов 0 17.05.2004 22:03
Чтение только 3-й строки файла daf PHP 1 11.02.2003 00:41



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов