Dmitry
Чтобы прицел на цель налез
Alexander
ну в ногу себе особо не пострелять, так хоть в кого-то
тот
я не в плане самого прицела, а как синоним к "обьем" "масштаб" "область" с англ на рус
тот
типа уточняет что это область в видимости = прицел
Alexander
главное что стало понятно что за ошибка
тот
главное что стало понятно что за ошибка
текст списывал с экрана с видео, пока не исправил, на видео все ок, посмотрю ща обьяснения по строчкам
Alexander
ты уверен что на экране ты видел весь текст?
Alexander
т.к. эта функция у тебя не определена
Alexander
а компилятор вывести её содержимое по имени не может
Ю ли я? 🤔
Плохой компилятор!
Ilya
да, переменная тут более общее чем в обычном языке, это и функция и ещё что
а вообще корректно называть переменные в хаскеле переменными?
Alexander
если дать определение переменной то почему бы и нет
тот
ты уверен что на экране ты видел весь текст?
да, на видео по экранам показано, может скажете тематику какую теорию посмотреть, countAge функция?, тоесть она получается не из модуля time взята
Alexander
байндингами бы наверное лучше было, но тогда с »= путаться будет
Alexander
и FFI
Влод
других подходящих слов нет
тот
непеременная
Dmitry
а вообще корректно называть переменные в хаскеле переменными?
Они могут разные значения при вызовах принимать
Dmitry
А ghc делать частично применённые функции? В том смысле, в f 1 x он сможет сделать экземпляр функции, где первый аргумент в теле всегда 1?
тот
байндингами бы наверное лучше было, но тогда с »= путаться будет
я понял, просто не обьявлена (::), автор видео почему то потерял строчку, видимо когда материал для видео готовил, в реальном времени не запускает
Dmitry
(как-то это по-другому называется, не частичное применение)
Alexander
о чем явно было написано
Alexander
щл
Alexander
ok
Anonymous
напомнило навозного жука...
Хаха смешно, в последнее время столкнулся с дюжиной полезных приложений, написанных на Go, и не одного на Хаскелл.
Dmitry
звучит как базовый функциоонал хаскеля
Не, я про другое. f x y = if x == 1 then g y else h y. Вызов f 1 a будет заменен на g a?
A64m
а вообще корректно называть переменные в хаскеле переменными?
корректно, это же лямбда-исчисление с расширениями
Leonid 🦇
80% интернета на php написано. А хаскелистам всё смешно
Ю ли я? 🤔
Ну всё же как-то странно называть переменными то, что никогда не меняется. Variables that don't vary.
Anonymous
это не отменяет того факта, что Go - вно ;)
Согласен ) Но наблюдение печальное
Ю ли я? 🤔
Вы так говорите, будто goвно - это что-то плохое! Растения, удобренные goвном, дают прекрасные плоды!
тот
ok
ошибка компилятора означала функция указана, но что она делает и какого типа не ясно, верно?
Влод
или тебе для этого побочная функция нужна?
Alexander
ошибка компилятора обозначала, что функция не указана
Alexander
он не смог найти определения countAge в области видимости
Alexander
и он вывел её тип
A64m
Хаха смешно, в последнее время столкнулся с дюжиной полезных приложений, написанных на Go, и не одного на Хаскелл.
языки программирования нужны для того чтоб программист хорошо себя чувствовал, а не для того чтоб какие-то там "полезные программы" писать
Dmitry
f 1 y = g y f _ y = h y ?
Да хоть так. Компилятор сможет заменить f 1 a на g a, или сделает программу, которая по всем вариантам будет проходить?
тот
и он вывел её тип
благодарю, типа компилятор догадался что это может быть функцией, но видит только имя, что под ним скрывается не знает, но знает какого типа должна быть чтобы сработало выражение?
Alexander
в haskell нету большой разницы между функцией и не функцией
Alexander
компилятор догаладся что имя countAge связано с чем-то что имеет тип указанный там
Влод
Да хоть так. Компилятор сможет заменить f 1 a на g a, или сделает программу, которая по всем вариантам будет проходить?
ааа. ну это сложно (+ всё равно не понимаю про какую оптимизацию речь - он в любом случае сравнит с единицей) ставлю на то что нет
A64m
А пользователям найдется место в этой картине мира?
пользователь сожрет любое говно, это нам из опыта известно, так что особо о нем переживать не нужно
Alexander
но определения этого не нашёл
Ю ли я? 🤔
Есть! У функции в типе стрелка есть, а у нефункции нет :)
Alexander
о чем и написал
Dmitry
Всё, нашел. Не может
Dmitry
Supercompilation – GHC https://ghc.haskell.org/trac/ghc/wiki/Supercompilation
A64m
при чем тут суперкомпиляция-то?
Alexander
@Yuu_chan Num => (a, Int -> Bool) ?
Alexander
Num a
Alexander
это функция?
Dmitry
при чем тут суперкомпиляция-то?
Ну постановка известных значений в тело функции - одна из техник суперкомпиляции
Ю ли я? 🤔
это функция?
Ну упс. Ну тогда стрелка "на самом верхнем уровне" - как это правильно сказать?
Alexander
а Num a => a ?
Alexander
тут как бы стрелки нету, но и значением это тоже назвать наверное нельзя
Alexander
или Family a, которое может быть функцией, а может быть нет в зависимости от a
Alexander
или например Right это функция, есть стрелка
Alexander
а Right 'a' уже как бы значение
Alexander
а let right = Right in right 'a' ?
Ю ли я? 🤔
тут как бы стрелки нету, но и значением это тоже назвать наверное нельзя
Да и функцией тоже... Хм. Всё, моя жизнь не будет прежней. Что есть функция? *филосораптор.жпг*
Oleg
на внутреннем языке это станет функцией
Ю ли я? 🤔
Является ли функцией undefined?
Alexander
ну обычно действительно имет ввиду отображения из одного множества(?) в другое
Anonymous
Ура, холивар! А то скучно в чатике стало
Холивар - это vim/emacs, табы/пробелы итп - а здесь спорить не о чем
Ю ли я? 🤔
Alexander
обычно называют тип a -> b
Alexander
и не вдаются в придирки как я