Запитання з тегом «haskell»

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

1
Навчальні нейронні мережі виявляють надзвичайно малі значення NaN
Я намагаюся реалізувати архітектуру нейронної мережі в Haskell і використовувати її на MNIST. Я використовую hmatrixпакет для лінійної алгебри. Моя навчальна база побудована за допомогою pipesпакету. Мій код компілюється і не дає збою. Але проблема полягає в тому, що певні комбінації розміру шару (скажімо, 1000), розміру міні-партії та швидкості навчання …

2
Методики відстеження обмежень
Ось сценарій: я написав код з підписом типу, і GHC скарги не змогли вивести x ~ y для деяких xі y. Зазвичай можна закинути GHC кісткою і просто додати ізоморфізм до обмежень функції, але це погана ідея з кількох причин: Це не підкреслює розуміння коду. Ви можете закінчити 5 обмежень, …
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)? Реальний світ Хаскелл заявляє: Знайома функція seq оцінює вираз у тому, що ми називаємо головою нормальної форми (скорочено HNF). Він зупиняється, як тільки дістається до самого зовнішнього конструктора («головки»). Це відрізняється від звичайної …

7
Зловживання алгеброю алгебраїчних типів даних - чому це працює?
Вираз «алгебраїка» для алгебраїчних типів даних виглядає дуже суттєвим для тих, хто має досвід математики. Дозвольте спробувати пояснити, що я маю на увазі. Визначивши основні типи Товар • Союз + Сінглтон X Одиниця 1 і використовуючи скорочену X²для X•Xі 2Xдля X+Xі так далі, ми можемо визначити алгебраїчні вирази , наприклад …

1
Наскільки принципово різними є штовхаючі та стрілові FRP?
Я хочу вивчити FRP в Haskell, але визначити, яку бібліотеку використовувати, трохи важко. Багато хто, здається, мертві спроби, деякі, здається, воскресилися (наприклад, недавня діяльність на Ямпа). З того, що я прочитав, складається враження, що є два "види" FRP: "push-pull FRP" (як у "Реактивний банан") з одного боку та стрілеподібний FRP …

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

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

6
Що так погано в шаблоні Haskell?
Здається, що шаблон Haskell часто розглядається громадою Haskell як прикрою зручністю. Важко сказати словами саме те, що я спостерігав у зв'язку з цим, але розглянемо ці кілька прикладів Шаблон Haskell, зазначений у розділі "Некрасивий (але необхідний)" у відповідь на питання, які розширення Haskell (GHC) користувачі повинні використовувати / уникати? Шаблон …

4
Чому Хаскелл (GHC) так проклятий?
Haskell (з GHCкомпілятором) набагато швидше, ніж ви очікували . Якщо правильно використати, він може наблизитись до мов низького рівня. (Улюблена річ Haskellers - це спробувати потрапити в межах 5% С (або навіть перемогти його, але це означає, що ви використовуєте неефективну програму C, оскільки GHC компілює Haskell на C).) Моє …

4
Порівняння веб-рамок Snake та Yesod Haskell
Останніми новинами двох веб-рамок 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? Чи може Haskell надати деякі переваги Node.js, а …

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

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, sup ~ …
212 haskell  ghc 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.