Size: a a a

2021 March 17

к

кана in Haskell Start
нет
источник

MZ

Mikhail Zhuravlev in Haskell Start
Jerzy Syrowiecki
у нас стрелочка в типе нужна, чтобы была функция. то есть тоже есть визуальное отличие. где у них скобки — признак функции, у нас — стрелка
А разве без стрелки это не функция без параметров? В языках со скобками есть определения функций с пустыми скобками, без параметров.
источник

JS

Jerzy Syrowiecki in Haskell Start
Mikhail Zhuravlev
А разве без стрелки это не функция без параметров? В языках со скобками есть определения функций с пустыми скобками, без параметров.
в Хаскеле не бывает функций без параметров. нет формальной зависимости = нет функции
источник

MZ

Mikhail Zhuravlev in Haskell Start
А функция, которая игнорирует параметр это нефункция, которая выглядит как функция, получается так?
источник

JS

Jerzy Syrowiecki in Haskell Start
Mikhail Zhuravlev
А функция, которая игнорирует параметр это нефункция, которая выглядит как функция, получается так?
формально это функция
источник

MZ

Mikhail Zhuravlev in Haskell Start
Сишной функции f(){return 1+2;} примерно соответствует хаскельное fn = 1 + 2, с разницей, что в си значение вычислится при вызове функции (если не думать, что компилятор умеет такое заменять на вычисленный литерал при компиляции), а в хаскеле мы точно не знаем, когда вычислится значение.
источник

JS

Jerzy Syrowiecki in Haskell Start
Mikhail Zhuravlev
А функция, которая игнорирует параметр это нефункция, которая выглядит как функция, получается так?
это даже одна из главных функций в лямбда-исчислений — K, в Хаскеле она называется const
источник

MZ

Mikhail Zhuravlev in Haskell Start
Не, конст игнорирует только один параметр, я говорю про игнорирование единственного параметра вроде fn x = 1
источник

A

Aragaer in Haskell Start
если я в package.yaml в dependencies вписал decimal, а мне stack говорит
decimal needed, but the stack configuration has no specified version (no package with that name found,
           perhaps there is a typo in a package's build-depends or an omission from the stack.yaml packages
           list?)
источник

A

Aragaer in Haskell Start
то что я сделал неправильно?
источник

JS

Jerzy Syrowiecki in Haskell Start
Mikhail Zhuravlev
Не, конст игнорирует только один параметр, я говорю про игнорирование единственного параметра вроде fn x = 1
fn = const 1
источник

MZ

Mikhail Zhuravlev in Haskell Start
Частично примененный конст это другая функция, чем просто конст
источник

JS

Jerzy Syrowiecki in Haskell Start
Aragaer
то что я сделал неправильно?
Decimal, ошибка в регистре
источник

JS

Jerzy Syrowiecki in Haskell Start
Mikhail Zhuravlev
Частично примененный конст это другая функция, чем просто конст
да, вот эта другая функция — функция
источник

A

Aragaer in Haskell Start
спасибо. А как можно из пакета узнать правильное имя для прописывания в package.yaml? А то я глянул в другой свой проект, там все зависимости lower-case
источник

JS

Jerzy Syrowiecki in Haskell Start
Mikhail Zhuravlev
Сишной функции f(){return 1+2;} примерно соответствует хаскельное fn = 1 + 2, с разницей, что в си значение вычислится при вызове функции (если не думать, что компилятор умеет такое заменять на вычисленный литерал при компиляции), а в хаскеле мы точно не знаем, когда вычислится значение.
в целом правильно, только эта разница несущественна.

где вы в С используете f(), получите 3, где в Хаскеле использутете fn, тоже получите 3
источник

MZ

Mikhail Zhuravlev in Haskell Start
Ладно, я нашел в спеке ответ, https://www.haskell.org/definition/haskell98-report.pdf 4.4.3 Function and Pattern Binding

We distinguish two cases within this syntax: a pattern binding occurs when the left hand side is a pat otherwise, the binding is called a function binding. Either binding may appear at the top-level of a module or within a where or let construct.
источник

MZ

Mikhail Zhuravlev in Haskell Start
То есть x=1 это function binding.
источник

JS

Jerzy Syrowiecki in Haskell Start
Aragaer
спасибо. А как можно из пакета узнать правильное имя для прописывания в package.yaml? А то я глянул в другой свой проект, там все зависимости lower-case
Decimal не может быть decimal, нет пакета decimal на Hackage, всегда регистр важен
источник

JS

Jerzy Syrowiecki in Haskell Start
Mikhail Zhuravlev
То есть x=1 это function binding.
нет, по репорту это pattern binding
источник