haskell- все статьи тега ➜ страница 4
Декартово произведение 2-х списков в Haskell
Я хочу создать декартово произведение 2 списков в Haskell, но я не могу понять, как это сделать. Декартово произведение дает все комбинации элементов списка: xs = [1,2,3] ys = [4,5,6] cartProd :: [a] -> [b] -> [(a,b)] cartProd xs ys ==> [(1,4),(1,5),(1,6),(2,4),(2,5),(2,6),(3,4),(3,5),(3,6)] Это не фактический вопрос домашнего задания и не связан с каким-либо таким вопросом, но способ, которым эта проблема решается, может помочь с тем, на котором я застрял. ...
Алгебраические типы данных Хаскелла
Я пытаюсь полностью понять все концепции Хаскелла. каким образом алгебраические типы данных похожи на универсальные типы, например, в C# и Java? И чем они отличаются? И вообще, что в них такого алгебраического? Я знаком с универсальной алгеброй и ее кольцами и полями, но у меня есть только смутное представление о том, как работают типы Хаскелла. ...
Что такое стрелы, и как я могу их использовать?
Я пытался узнать смысл стрелки, но я их не понял. Я использовал учебник Wikibooks. Я думаю, что проблема Wikibook в основном заключается в том, что она, похоже, написана для кого-то, кто уже понимает эту тему. может кто-нибудь объяснить, что такое стрелки и как я могу их использовать? ...
Множества, функторы и путаница эквалайзера
недавно на работе возникла дискуссия о наборах, которые в Scala поддерживают zip метод и как это может привести к ошибкам, например, scala> val words = Set("one", "two", "three") scala> words zip (words map (_.length)) res1: Set[(java.lang.String, Int)] = Set((one,3), (two,5)) я думаю, что это довольно ясно, что Sets не должен поддерживать a zip операция, так как элементы не упорядочены. Однако было высказано предположение, что проблема заключается в том, что Set на самом деле не функто ...
Почему в Haskell не так много дискуссий о co - и contra-дисперсии (в отличие от Scala или C#)?
Я знаю, что ковариантность и контравариантность типов. Мой вопрос в том, почему я еще не сталкивался с обсуждением этих концепций в моем исследовании Haskell (в отличие, скажем, от Scala)? кажется, есть фундаментальная разница в том, как Haskell рассматривает типы В отличие от Scala или C#, и я хотел бы сформулировать, в чем эта разница. или, может быть, я ошибаюсь, и я просто еще не узнал достаточно Haskell: -) ...
Как сделать проект Haskell cabal с библиотекой + исполняемыми файлами, которые все еще работают с runhaskell/ghci?
если вы объявить библиотеку + исполняемые разделы в файле cabal, избегая двойной компиляции библиотеки поместив библиотеку в hs-source-dirs каталог, вы обычно не можете запустить свой проект с ghci и runhaskell больше, особенно если исполняемые файлы имеют вспомогательные модули. что такое рекомендуемый макет проекта, который только строит то, что нужно после позволяет использовать runhaskell имеет чистую структуру без хаков? ...
В чем преимущество чисто функциональной структуры данных?
существует большое количество текстов о структурах данных и библиотеках кода структур данных. Я понимаю, что чисто функциональная структура данных легче рассуждать. Однако мне трудно понять реальное преимущество использования чисто функциональной структуры данных в прагматическом коде (используя функциональный язык программирования или нет) над императивным аналогом. Кто-нибудь может предоставить некоторые реальные случаи, когда чисто функциональная структура данных имеет преимущество и зачем? ...
Недостатки системы типа Scala по сравнению с Haskell?
Я читал, что система типов Scala ослаблена взаимодействием Java и поэтому не может выполнять некоторые из тех же полномочий, что и система типов Haskell. Это правда? Это слабость из-за стирания типа, или я ошибаюсь?во всех смыслах? Является ли эта разница причиной того, что у Scala нет typeclasses? ...
Как импортировать файл. hs в Haskell
Я сделал файл под названием time.hs. Он содержит одну функцию, которая измеряет время выполнения другой функции. есть ли способ импортировать time.hs файл в другой скрипт Haskell? Я хочу что-то вроде: module Main where import C:Haskelltime.hs main = do putStrLn "Starting..." time $ print answer putStrLn "Done." где время определяется во времени .УГ как: module time where Import <necessary modules> time a = do start <- getCPUTime v <- a end <- getCPUTime let ...
Что такое "N+k patterns" и почему они запрещены в Haskell 2010?
при чтении запись Википедии на Haskell 2010 я наткнулся на это: -- using only prefix notation and n+k-patterns (no longer allowed in Haskell 2010) factorial 0 = 1 factorial (n+1) = (*) (n+1) (factorial n) что они подразумевают под"N + K паттернами"? Я думаю, что это вторая строка, но я не понимаю, что с ней может быть не так. Может ли кто-нибудь объяснить, в чем проблема? Почему эти шаблоны n + k не разрешены в Haskell 2010? ...
Смешивая Эрланг и Хаскель
Если вы купились на парадигму функционального программирования, скорее всего, Вам нравятся как Эрланг, так и Хаскелл. Оба имеют чисто функциональные ядра и другие преимущества, такие как легкие нити, которые делают их хорошо подходящими для многоядерного мира. Но есть и некоторые отличия. Erlang-это коммерчески проверенный отказоустойчивый язык со зрелой моделью распределения. Он имеет, казалось бы, уникальную особенность в его способности обновить свою версию во время выполнения с помощью г ...
Понимание стрелок в Haskell
Я пытался получить контроль над стрелками, так как они являются основой большинства FRP реализаций. Я думаю, что понимаю основную идею-они связаны с монадами, но хранят статическую информацию в каждом операторе привязки, поэтому вы можете пройти через цепочку стрелок и посмотреть на статическую информацию, не оценивая всю стрелку. но я теряюсь в точке, где мы начнем обсуждать первый, второй и поменять. Какое отношение 2-кортежи имеют к стрелкам? Учебники представляют материал кортежа, как е ...