Alexander
do x <- y
next
<------>
y >>= \x -> next
Alexander
т.е. rootDir это FilePath
Alexander
этого хватит, чтобы исправить?
Aliester
hell, i have all my inodes used by the lagged tmp logs writer and don't know where they are stored
IC
rootDir не процедура в IO, из него больше нельзя значение вытащить
Aliester
i can't even switch the lang
Alexander
@acrawley kill your tmp logs writer :)
Alexander
https://stackoverflow.com/questions/653096/how-to-free-inode-usage
Alexander
and don't use ext filesystem
Aliester
what fs should I use instead?
Alexander
/shrug
Alex
dumpDir <- rootDir </> "dumps"
Alexander
смотри какой тип должен быть у выражения справа от стрекли в do-syntax?
Alex
FilePath
Alex
Верно?
Alexander
нет
Alex
А какой?
Alexander
представь ты видишь:
foo :: m ()
foo = do
x <- boo
return ()
Alexander
какой тип у boo ?
Aliester
¯\_(ツ)_/¯
Alexander
рассахаренное (если поможет): foo = boo >>= \x -> return ()
Alex
Не имею ни малейшего представления
Alexander
жалко.. : (
Alexander
ты по какому ресурсу/книжке учишь haskell?
Alex
Learn haskell for a great good
Alexander
https://en.wikibooks.org/wiki/Haskell/do_notation <- на всякий случай + это на вечернее чтение :)
Alex
Кажется так
кана
кана
m что-то, а что за что-то по контексту не понятно
Alex
А
Alexander
m что-то
Alex
Это как раз я понимал
Alexander
вот
Alexander
@kana_sama спасибо, кстати
Alexander
@al_bl ну тогда возвращаемся:
dumpDir <- rootDir </> "aaa"
Alexander
какой тип у выражения справа от стрелки должен быть?
Alexander
я извиняюсь, что окольными путями, а не сразу ответ пишу, но почему-то мне кажется, что если ты пройдешь этими путями, то потом будет проще самому ответ находить
Alex
Нет, меня все устраивает, спасибо большое за возню со мной:)
Alex
IO что-то
Alexander
да, IO что-то
Alex
В данном случае IO FilePath
Alexander
а какой у тебя?
Alexander
rootDir </> "aaa", если rootDir это FilePath
Alex
короче я понял
Alexander
отлично
Alex
Там выходит просто файлпаф
Alexander
ага
Alexander
поэтому или через:
let x = rootDir </> "aaa"
или
x <- pure $ rootDir </> "aaa"
Alexander
у них несколько разное поведение, в случае pattern match ошибки
Alexander
но пока лучше просто через let x писать :)
Alex
Спасибо большое
кана
вот кстати <- as expression можно сказать убирает такие недоразумения (особенно людям, знакомыми с js/c#/где там еще async-await/yield есть)
типа
let pureX = 42
let impureX = <- boo pureX
Alexander
ну doSmth (<- root </> "aaa") бы с той же ошибкой зафейлилось
Alexander
ну нафиг:
let pureX =
impureX = <-
pureY =
Alex
pure ведь просто упакует выражение внутри в монаду, верно?
Alexander
вот напишет кто такой блок и радуйся, понимай
кана
ну я не про то, изначально есть шанс того, что человек начнет думать, что <- нужен для биндинга имя со значением в do-нотации
Alexander
@al_bl да
Alexander
или без let писать как в ghci :)
Alexander
do { pureX = blabla; impureX <- ququ }
Dmitry
Alexander
так надо
Alexander
не спрашивай а репость
Alexander
а давайте зададим вопрос представителю FPC в чятике, может он знает :)
Alexander
Kirill ^ :)
Leonid 🦇
hdbc это же ад на stringах
Alexander
кстати, никто в Well Typed не хочет устроиться, чтобы в чятике их представители тоже были?
Leonid 🦇
Kirill
Крис говорит на мсскл тестировалось, другие дарйвера должны тоже работать
Alexander
у меня вроде и первого не было, когда я был в шаге от устройства
Alexander
контрибьюты в ghc гораздо больше сыграют, чем PhD
Kirill
Ну и за MS SQL заплатили, как я понимаю :)
Alexander
это был сарказм на тему того, что не стоит спрашивать слишком сложные вопросы, а стоит просто радоваться, это не серьезное сообщеине было
Kirill
радоваться никогда не мешает :)
Leonid 🦇
Радость программирования
Denis
безрадостный процесс
Denis
за страдания доплачивают
Dmitry
ну, я же сказал "Прекрасно" :-)