Вопросы с тегом «haskell»

Haskell - это функциональный язык программирования, отличающийся строгой статической типизацией, отложенной оценкой, обширной поддержкой параллелизма и параллелизма и уникальными возможностями абстракции.

2
Методы отслеживания ограничений
Вот сценарий: я написал некоторый код с сигнатурой типа, и жалобы GHC не смогли вывести x ~ y для некоторых xи y. Обычно вы можете бросить GHC кость и просто добавить изоморфизм в ограничения функции, но это плохая идея по нескольким причинам: Это не подчеркивает понимание кода. Вы можете получить …
322 haskell  constraints  ghc 

8
Что делает ключевое слово `forall` в Haskell / GHC?
Я начинаю понимать, как forallключевое слово используется в так называемых «экзистенциальных типах», например: data ShowBox = forall s. Show s => SB s Однако это только часть того, как forallэто используется, и я просто не могу сосредоточиться на его использовании в таких вещах: runST :: forall a. (forall s. ST …
312 haskell  syntax  types  ghc  forall 

6
Что такое нормальная форма слабой головы?
Что означает Нормальная Форма Слабой Головы (WHNF)? Что означает нормальная форма головы (HNF) и нормальная форма (NF)? Реальный мир Haskell утверждает: Привычная функция seq вычисляет выражение к тому, что мы называем нормальной головой (сокращенно HNF). Он останавливается, как только достигает самого внешнего конструктора («головы»). Это отличается от нормальной формы (NF), …

7
Злоупотребление алгеброй алгебраических типов данных - почему это работает?
«Алгебраическое» выражение для алгебраических типов данных выглядит очень наводящим на размышления тому, кто имеет опыт работы в математике. Позвольте мне попытаться объяснить, что я имею в виду. Определив основные типы Товар • союз + одиночка X Ед. изм 1 и используя сокращение X²для X•Xи 2Xдля X+Xи так далее, мы можем …

1
Насколько принципиально отличаются двухтактные и стрелки FRP?
Я хочу изучать FRP в Haskell, но немного сложно выбрать библиотеку для использования. Многие из них кажутся мертвыми попытками, некоторые, похоже, воскрешены (например, недавняя активность на Ямпе). Из того, что я прочитал, кажется, что есть два «вида» FRP: двухтактный FRP (как в Reactive-banana) с одной стороны и стрелочный FRP (как …

3
Что означает восклицательный знак в декларации Haskell?
Я натолкнулся на следующее определение, пытаясь изучить Haskell, используя для этого реальный проект. Я не понимаю, что означает восклицательный знак перед каждым аргументом, и мои книги, похоже, не упоминали об этом. data MidiMessage = MidiMessage !Int !MidiMessage

1
Получение ассоциированных синонимов типов с шаблоном Haskell
Может ли Template Haskell узнать имена и / или объявления синонимов связанных типов, объявленных в классе типов? Я ожидал, reifyчто сделаю то, что хочу, но, похоже, он не предоставляет всей необходимой информации. Он работает для получения сигнатур типов функций: % ghci GHCi, version 7.8.3: http://www.haskell.org/ghc/ :? for help ... Prelude> …

6
Что такого плохого в шаблоне Haskell?
Кажется, что шаблон Haskell часто рассматривается сообществом Haskell как неприятное удобство. Трудно выразить словами то, что я наблюдал в этом отношении, но рассмотрим эти несколько примеров. Шаблон Haskell указан в разделе «Гадкий (но необходимый)» в ответ на вопрос: Какие расширения Haskell (GHC) следует использовать / избегать пользователям? Шаблон Haskell считается …

4
Почему Haskell (GHC) так чертовски быстр?
Haskell (с GHCкомпилятором) работает намного быстрее, чем вы ожидаете . При правильном использовании он может приблизиться к языкам низкого уровня. (Любимая вещь для Haskellers - попытаться получить в пределах 5% от C (или даже побить его, но это означает, что вы используете неэффективную программу на C, поскольку GHC компилирует Haskell …

4
Сравнение веб-фреймворков Haskell's Snap и Yesod
Недавно в новостях появились две веб-платформы Haskell: Yesod (0,8) и Snap (0,4). Совершенно очевидно, что в настоящее время Yesod поддерживает гораздо больше функций, чем Snap. Тем не менее, я не выношу синтаксис, используемый Yesod для его HTML, CSS и Javascript. Итак, я хотел бы понять, чего бы мне не хватало, …

1
Haskell: списки, массивы, векторы, последовательности
Я изучаю Haskell и читаю пару статей, касающихся различий в производительности списков Haskell и массивов (вставьте свой язык). Будучи учеником, я, очевидно, просто использую списки, даже не задумываясь о разнице в производительности. Я недавно начал исследовать и нашел множество библиотек структур данных, доступных в Haskell. Может кто-нибудь объяснить, пожалуйста, разницу …
230 haskell 

7
Каков ответ Haskell на Node.js?
Я полагаю, что сообщество Erlang не завидует Node.js, поскольку оно изначально не блокирует ввод-вывод и имеет способы легко масштабировать развертывания на более чем один процессор (что даже не встроено в Node.js). Более подробная информация на http://journal.dedasys.com/2010/04/29/erlang-vs-node-js и Node.js или Erlang Что насчет Хаскелла? Может ли Haskell обеспечить некоторые преимущества Node.js, …

6
Запуск программы на Haskell в ОС Android
Примечание: это расширение потока, запущенного в / r / haskell Начнем с фактов: Android - это потрясающая операционная система Haskell - лучший язык программирования на планете Поэтому, очевидно, что их объединение сделало бы разработку Android намного лучше. По сути, я просто хотел бы знать, как я могу писать программы на …

2
Когда -XAllowAmbiguousTypes подходит?
Недавно я опубликовал вопрос о синтаксической версии 2.0 относительно определения share. У меня было это работает в GHC 7.6 : {-# LANGUAGE GADTs, TypeOperators, FlexibleContexts #-} import Data.Syntactic import Data.Syntactic.Sugar.BindingT data Let a where Let :: Let (a :-> (a -> b) :-> Full b) share :: (Let :<: sup, …
212 haskell  ghc 

5
Хорошие примеры не функтор / функтор / аппликатив / монада?
Объясняя кому-то, что такое класс типов X, я стараюсь найти хорошие примеры структур данных, которые в точности X. Итак, я прошу примеры для: Конструктор типа, который не является Functor. Конструктор типа, который является Functor, но не Applicative. Конструктор типа, который является Аппликативным, но не Монадой. Конструктор типа, который является Монадой. …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.