33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402
|
|||||||||||
1 | |||||||||||
Программа принимает в командной строке имя файла и распечатывает его на экране, ошибка в стрелке04.04.2012, 22:54. Показов 3481. Ответов 10
Метки нет (Все метки)
Программа принимает в командной строке имя файла и распечатывает его на экране
C:\lab.hs:4:6: parse error on input `<-' не могу понять, что ей не нравиться? подскажите пж Добавлено через 4 минуты
0
|
04.04.2012, 22:54 | |
Ответы с готовыми решениями:
10
Программа, которая принимает в командной строке имя файла и распечатывает его на экране Программа, которая принимает в командной строке имя файла и распечатывает его на экране Программа, принимающая в командной строке число n и имя файла и выводящая на экран первые n строк фай- ла Поиск заданного файла в заданной папке (путь и имя файла задаются в командной строке) |
313 / 268 / 5
Регистрация: 03.04.2011
Сообщений: 456
|
|
04.04.2012, 23:00 | 2 |
Только не забывай закрывать (hClose) файл через дескриптор.
По-моему, тут тоже надо getArgs использовать из твоего предыдущего вопроса.
1
|
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402
|
|
04.04.2012, 23:21 [ТС] | 3 |
Код
import IO printFile = do putStr "adres Faila kakov: " name <- getLine fromHandle <- openFile name ReadMode contents <- hGetContents fromHandle hPutStr stdout contents hClose stdout <stdout>: hFlush: illegal operation (handle is closed) с чем может быть связано, хотя выводит все так? просто смущает
0
|
313 / 268 / 5
Регистрация: 03.04.2011
Сообщений: 456
|
||||||
04.04.2012, 23:31 | 4 | |||||
Ты шутница, закрываешь стандартный файловый поток вывода.
2) Считываешь содержимое 3) Закрываешь файл 1)-2) пункты ты сделала, без 3) всё нормально работало, потому Haskell взял на себя заботу по освобождению захваченных ресурсов (закрытию файла) по окончании работы программы. Но иногда всё работает не так хорошо (например, в случае исключений), поэтому хорошая практика - явно закрывать открытые файловые потоки.
1
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
05.04.2012, 04:54 | 5 | |||||
Код
~/samples/haskell $ ghc --make sample.hs -o cat [1 of 1] Compiling Main ( sample.hs, sample.o ) Linking cat ... ~/samples/haskell $ ./cat sample.hs import System.Environment (getArgs) main = getArgs >>= readFile . head >>= putStr ~/samples/haskell $
2
|
313 / 268 / 5
Регистрация: 03.04.2011
Сообщений: 456
|
|
05.04.2012, 15:01 | 6 |
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
05.04.2012, 15:05 | 7 |
Да запросто:
http://hackage.haskell.org/pac... v:readFile http://hackage.haskell.org/pac... 2--62--61- Или нужно объяснить, что такое монада?
0
|
313 / 268 / 5
Регистрация: 03.04.2011
Сообщений: 456
|
|
05.04.2012, 15:11 | 8 |
Да-да, объясни, пожалуйста, это же вроде какой-то эндофунктор (или экзофунктор вроде), нет?
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
05.04.2012, 15:12 | 9 |
bokunopico, это моноид в категории эндофункторов
1
|
313 / 268 / 5
Регистрация: 03.04.2011
Сообщений: 456
|
|
05.04.2012, 15:19 | 10 |
А комонада? Это комоноид?
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
05.04.2012, 15:38 | 11 |
не знаю, я их не разу не видел
Добавлено через 4 минуты Судя по всему, все-таки комоноид: http://tinyurl.com/monad-comonad
1
|
05.04.2012, 15:38 | |
05.04.2012, 15:38 | |
Помогаю со студенческими работами здесь
11
В командной строке задается имя входного файла и целое число Н. Распечатать последние Н строк указанного файла Отделить путь и имя файла от аргументов в командной строке Ввести текст из файла, имя которого задано в командной строке, и вывести на экран Копирование файла, если имя старого и нового файлов передается в командной строке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |