
Alexander
05.03.2017
17:14:02

melancholiac
05.03.2017
17:14:22

Alexander
05.03.2017
17:14:38
А у меня не сарказм, дважды

melancholiac
05.03.2017
17:15:03
(:V)

Google

Sasha
05.03.2017
18:44:36
Здравствуйте, тупые вопросы можно задавать?

ollerus
05.03.2017
18:44:58
Можно

melancholiac
05.03.2017
18:45:06

Sasha
05.03.2017
18:45:22
как остановить программу после выполнения

ollerus
05.03.2017
18:46:00
Выключи комп

Sasha
05.03.2017
18:46:26
ну тип у меня окошко вылетает и сразу закрывается

melancholiac
05.03.2017
18:46:41
что за программа?

Sasha
05.03.2017
18:47:05
да просто хеллоуворлд

melancholiac
05.03.2017
18:47:42
сорцы кинь
(и так ясно что он не поставил паузу перед возврата мейна, я из вежливости спросил)

Evgeniy
05.03.2017
18:50:26

Sasha
05.03.2017
18:50:31
main = do
print "Name ?"
name <- getLine
print ("Hello " ++ name ++ "!")

? animufag ?
05.03.2017
18:50:39
Я бы хотел помочь но не понимаю что происходит

Google

? animufag ?
05.03.2017
18:52:58

Sasha
05.03.2017
18:55:38
хочу чтото как в плюсах system("pause")

Alexander
05.03.2017
18:58:01
void $ getLine
наприме
или запускать из терминала, например
какие-то виндо/IDE-проблемы

Artem
05.03.2017
19:00:13

Sasha
05.03.2017
19:00:53
Да все, из командной строки запустил
норм

Evgeniy
05.03.2017
19:02:24

? animufag ?
05.03.2017
19:02:43

Sasha
05.03.2017
19:03:25
поэтому пишу и компилю в нотпаде, а запускаю черз командную строку

? animufag ?
05.03.2017
19:11:07
ну к примеру, пишешь что-нибудь в нотпаде, помнишь название функции которая тебе нужна но не помнишь в каком порядке она принимает аргументы
> :t take
Int -> [a] -> [a]
проверяешь как она работает
> take 3 "substring"
"sub"

Alexander
05.03.2017
19:12:04
:main в ghci же

? animufag ?
05.03.2017
19:12:33
ну или запускаешь ghci (твой файл)
и проверяешь все свои функции, проверяешь тот же main
пишешь :reload когда что-нибудь добавил в файл

Alexander
05.03.2017
19:12:45
:r/:reload если перезагрузить если файл изменил в другом месте

? animufag ?
05.03.2017
19:13:17

Alexander
05.03.2017
19:13:39
хз, я не пользую эту функцию обычно

Владислав
05.03.2017
19:13:40
Как в монады попроще въехать, чтобы побыстрее начать быдлокодить?

Google

Alexander
05.03.2017
19:13:57
быдлокодь без въезжания

? animufag ?
05.03.2017
19:13:59
не въезжай

Владислав
05.03.2017
19:14:07
Рофл

Alexander
05.03.2017
19:14:27
монады просто средство связывания действий с эффектами. т.е. передача из однго в другое значение
чего тут понимать
а вот научиться применять и видеть, где использовать, это другое для этого как раз и надо быдлокодить
т.е. методом демидовича набирать опыт

? animufag ?
05.03.2017
19:15:47

Владислав
05.03.2017
19:15:48
А и, кстати, как предотвратить зацикливание, если напортачил?

Sasha
05.03.2017
19:15:51
вопрос на вырост, сложно ввод вывод из файла сделать?

Владислав
05.03.2017
19:15:52
Есть какие-то инструменты?

? animufag ?
05.03.2017
19:16:16

Владислав
05.03.2017
19:16:18
Тайм-лимит, например

Alexander
05.03.2017
19:16:20
@vlastachu очевидно, что ты не прав

Sasha
05.03.2017
19:16:34

Igor
05.03.2017
19:16:48

Alexander
05.03.2017
19:17:03
@t1mee System.Timeout.timeout например
^C
@vlastachu все монады это инкапсуляция какого-либо эффекта в типе данных

? animufag ?
05.03.2017
19:18:02

Google

? animufag ?
05.03.2017
19:18:28
сайд

Alexander
05.03.2017
19:18:31
речь идёт про побочные эффекты

? animufag ?
05.03.2017
19:19:18
и что является побочным эффектом для списка?

Alexander
05.03.2017
19:19:24
давай определимся, знаком ли ты знаком ли ты со статьей Moggi "Computational lambda-calculus and monads" 1989 года
что такое list monad?

? animufag ?
05.03.2017
19:19:46
Ну конечно же нет

Alexander
05.03.2017
19:20:15
тогда давай не будем тратить время на споры, а ты её почитаешь, хотя бы вступление и 1-2 части
а не, там примеров нету, за примерами к Вадлеру
в общем List это инкапсуляция эффекта недетерминированных вычислений и это side эффект
@t1mee а ты это не читай, это теоритические разборки ;)

Igor
05.03.2017
19:22:53

Владислав
05.03.2017
19:23:27
Та я пока на и stepik.org развлекаюсь, есть время до монад, экшели)

Alexander
05.03.2017
19:24:48
@vlastachu то что монады это зачастью чистые вычисления, когда они вычисляются - это да

Владислав
05.03.2017
19:25:22
Кстати, об этом. Есть предложения, как через хвостовую функцию запилить: SeqA n = seqA (n-1) + seqA (n-2) - 2*seqA (n - 3)?)

Alexander
05.03.2017
19:27:13
наверное нечестно будет решать задачу из курса, там вроде были какие-то задачи, с завязыванием узла, которые как подсказку использовать можно?

Владислав
05.03.2017
19:29:38
Так-то оно так, вот только даже дефолтный код без let и стражевых операторов требует запредельные ресурсы по времени
seqA :: Integer -> Integer
seqA n | n == 1 = 0
| n == 2 = 1
| n == 3 = 2
| n >= 4 = seqA (n - 1) + seqA (n - 2) - 2 * seqA (n - 3)
| otherwise = error "arg must be >= 1"
В оригинале форматирование ровное, для заметки)

Alexander
05.03.2017
19:31:23
это не tailrec

Владислав
05.03.2017
19:31:32
Это - да)

Google

Владислав
05.03.2017
19:31:41
Но мне нужно, чтобы хоть как-то работало
Для начала

Alexander
05.03.2017
19:31:43
для кода есть markdown выделение три символа ` вначале и вконце кода
переписать как tailrec проще, чем заставить этот вариант не жрать ресурсы
@vlastachu ты пишешь что-то очень-очень длинное? ;(
;) т.е.


? animufag ?
05.03.2017
19:33:20
Ну ладно, ок. В определенный момент моё развитие в плане хаскеля и теорката остановилось и вполне осознанно. Многие вещи я не понимаю при достаточных затратах времени на них. В этом плане ты можешь относится ко мне как к инвалиду к которому отсылать фундаментальную литературу будет излишним.
Но вот что наверное можно объяснить тут сразу на месте: монады существовали и без хаскеля. Они сразу подразумевали эффекты? А прочие штуки из теорката тоже чтоли под собой имеют интуитивную такую интерпретацию?
Когда мы определяем структуру данных и монаду над ней можно тут также красиво предугадать какой эффект она интерпретирует? Или есть конечное число возможных вариаций для построения хаскельных типов и они уже все удачно проинтерпретированы? (ну типа как мы добавим в Either ещё один конструктор и вроде бы ничего толком не поменялось)
Неоднозначность определения монады над типом никак не влияет на эту эффектную интерпретацию
как видишь
ну скинул так
там могут быть несвязные предложения
речь идёт про побочные эффекты
ещё вот это не укладывается
типа как у них конечно у всех сайд эффекты, но у IO совсем сайд


Alexander
05.03.2017
19:36:45
да, монады сразу подразумевали эффекты (про теоркат не скажу, я в нём не силен); тут последовательноть обратная исторически была - есть эффект находим структуру; но про типы если можно написать инстанс Monad значит можно найти и смысл

? animufag ?
05.03.2017
19:36:50
Тогда уж интересно узнать что такое сайд эффекты

Vladislav
05.03.2017
19:37:02

Alexander
05.03.2017
19:37:06
я могу пересказать стью для как для dummies типа меня
сейчас найду одно из старых определний если не потерял статью

? animufag ?
05.03.2017
19:37:56