liftA2
и некий дебилизм конструирования чистых функций. Кроме того в первом случае у нас код первого порядка, то есть не содержит ФВП, а во втором содержит.
написать функцию из второго в первое
правда? напишите
более универсальное = имея второй интерфейс можно реализовать первый
вот и я об этом же. только это не интерфейс, а представление. из первого не получается второй, потому что в первом больше полезной информации
a -> m b
на m (a -> b)
. Речь конкретно о readArray
. Имея монады, то есть композицию и юнит для a -> m b
, можно сделать любую из двух сигнатур, см. моё первое сообщение с двумя сигнатурами readArray
, но выбрали первую сигнатуру . Вопрос почему. И не поломается ли что-то (например, какие-то инварианты или производительность или удобство) в библиотеке массивов , если использовать второй.
readArray :: (MArray a e m, Ix i) => m (a i e -> i -> e)
вообще невозможно реализовать. некое действие должно сконструировать чистую функцию, которая вернёт e
для любого i
и любого массива? а если индекс выходит за границы массива?
a i e
Добрый день! Не знаю в какой раздел обратиться, но поскольку я пока в Haskell полный чайник, задам вопрос здесь.
Пытаюсь следовать описанным quick start шагам, описанным здесь: http://haskell.vacationlabs.com/en/latest/docs/reflex/getting-started.html. Но получаю ошибку при компиляции пакета happy. Пытаюсь установить happy через stack install happy
и получаю такое:
happy> Configuring happy-1.19.5...
happy> build
happy> Building happy-1.19.5...
happy> Preprocessing executable 'happy' for happy-1.19.5...
happy> setup: The program 'happy' is required but it could not be found
То есть получается, что установить happy нельзя, потому что не установлен happy. Что я делаю не так?
stack --resolver=lts-14.20 install happy
resolver: lts-7.8
packages:
- .
extra-deps:
- ghcjs-dom-0.7.0.3
- ghcjs-dom-jsaddle-0.7.0.3
- jsaddle-0.7.0.0
- jsaddle-dom-0.7.0.3
- jsaddle-warp-0.7.0.0
- prim-uniq-0.1.0.1
- ref-tf-0.4.0.1
- zenc-0.1.1
- git: https://github.com/reflex-frp/reflex
commit: 91299fce0bb2caddfba35af6608df57dd31e3690
# Latest develop comment at the time of writing
- git: https://github.com/hamishmack/reflex-dom
commit: d9842742183a800cf1f98f89d42d849d52dd2d67
# Latest develop comment at the time of writing
flags: {}
extra-package-dbs: []