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

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

5
Що таке індексована монада?
Що таке індексована монада та мотивація цієї монади? Я читав, що це допомагає відстежувати побічні ефекти. Але підпис і документація типу не ведуть мене нікуди. Що може бути прикладом того, як це може допомогти відслідковувати побічні ефекти (чи будь-який інший дійсний приклад)?
98 haskell  monads 

3
Як грати з Control.Monad.Writer в haskell?
Я новачок у функціональному програмуванні і нещодавно навчався в Learn You a Haskell , але коли я пройшов цей розділ , я застряг у програмі нижче: import Control.Monad.Writer logNumber :: Int -> Writer [String] Int logNumber x = Writer (x, ["Got number: " ++ show x]) multWithLog :: Writer [String] …
97 haskell  monads 

3
mtl, трансформатори, monads-fd, monadLib та парадокс вибору
Hackage має кілька пакетів для монадних трансформаторів: mtl : Бібліотека трансформаторів монад трансформатори : Бетонні функторні та монадні трансформатори monads-fd : Класи монад , що використовують функціональні залежності monads-tf : Класи монад з використанням сімейств типів monadLib : колекція монадних трансформаторів. mtl-tf : Бібліотека трансформаторів Monad з використанням сімейств типів. …

3
Різниця між штатом, ST, IORef та MVar
Я працюю через Напишіть собі схему за 48 годин (я приблизно до 85 годин), і я дійшов до частини про Додавання змінних та призначень . У цій главі є великий концептуальний стрибок, і я би хотів, щоб це було зроблено у два етапи з гарним рефакторингом між ними, а не …

5
Плутається з розумінням для перетворення flatMap / Map
Я справді не розумію Map і FlatMap. Що я не можу зрозуміти, так це те, як для розуміння є послідовність вкладених викликів map і flatMap. Наступний приклад з функціонального програмування в Scala def bothMatch(pat:String,pat2:String,s:String):Option[Boolean] = for { f <- mkMatcher(pat) g <- mkMatcher(pat2) } yield f(s) && g(s) перекладає на …

18
Який сенс у класі Option [T]?
Я не можу зрозуміти сенс Option[T]занять у Scala. Я маю на увазі, що я не можу побачити жодних переваг Noneпонад null. Наприклад, розглянемо код: object Main{ class Person(name: String, var age: int){ def display = println(name+" "+age) } def getPerson1: Person = { // returns a Person instance or null …

5
Конкретний приклад, що монади не закриваються за складом (з доказом)?
Загальновідомо, що аплікативні функтори закриті під композицією, але монади - ні. Однак у мене були проблеми з конкретним контраприкладом, який показує, що монади складаються не завжди. Ця відповідь наводить [String -> a]як приклад немонади. Трохи погравши з цим, я вірю в це інтуїтивно, але ця відповідь просто говорить: "приєднання не …

5
Монади як приєднання
Я читав про монади в теорії категорій. В одному визначенні монад використовується пара суміжних функторів. Монада визначається в обидва кінці з використанням цих функторів. Очевидно, що приєднання дуже важливі в теорії категорій, але я не бачив жодного пояснення монад Хаскела з точки зору суміжних функторів. Хтось замислювався над цим?

1
«Монадні трансформатори, потужніші за ефекти» - приклади?
Стаття "Програмування та міркування з алгебраїчними ефектами та залежними типами" Едвіна К. Брейді щодо ефектів в Ідрісі містить (без посилань) твердження, що: Хоча [ефекти та монадні трансформатори] не є еквівалентними за потужністю - монади та монадні трансформатори можуть виражати більше понять - зафіксовано багато загальних ефективних обчислень. Які приклади можна …

9
Монади з Java 8
Щоб допомогти зрозуміти, що таке монада, чи може хтось навести приклад використання Java? Чи можливі вони? Лямбда-вирази можливі за допомогою java, якщо ви завантажите JDK8, сумісний з лямбда-зв’язком, звідси http://jdk8.java.net/lambda/ Приклад лямбди з використанням цього JDK наведено нижче, чи може хтось надати порівняно просту монаду? public interface TransformService { int[] …
78 java  java-8  monads  optional 


2
Як працює монада ST?
Я розумію, що монада ST - це щось на зразок маленького брата IO, який, у свою чергу, є державною монадою з доданою RealWorldмагією. Я можу уявити собі стан , і я можу уявити , що RealWorld який - то чином ввести в IO, але кожен раз , коли я пишу …
77 haskell  monads 

1
Як розділити монаду продовження на ліві та праві сполучення?
Оскільки державна монада може бути розподілена на продукт (ліворуч - функціонер) та читач (справа - представницький). Чи є спосіб факторизувати продовження Монади? Нижче коду - моя спроба, яка не перевіряю тип -- To form a -> (a -> k) -> k {-# LANGUAGE MultiParamTypeClasses, TypeOperators, InstanceSigs, TypeSynonymInstances #-} type (<-:) …

2
Вкладені штати в Хаскелл
Я намагаюся визначити сімейство державних машин з дещо різними видами станів. Зокрема, більш "складні" державні машини мають стани, які утворюються шляхом об'єднання станів більш простих державних машин. (Це схоже на об'єктно-орієнтовану установку, коли об’єкт має кілька атрибутів, які також є об'єктами.) Ось спрощений приклад того, що я хочу досягти. data …

1
Що я можу зробити з callCC, що неможливо зробити з продовженням?
Я справді дуже боюся з розумінням callCC. Я отримую силу продовжень і використовую цю концепцію в деяких своїх проектах, щоб створити круті концепції. Але ніколи мені не потрібно було використовувати щось з більшими можливостями, ніж cont :: ((a->r)->r)-> Cont r a. Після його використання має багато сенсу, чому вони називають …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.