Форум программистов, компьютерный форум, киберфорум
Наши страницы
Haskell
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/24: Рейтинг темы: голосов - 24, средняя оценка - 4.71
Catstail
Модератор
24609 / 12516 / 2285
Регистрация: 12.02.2012
Сообщений: 20,334
1

FAQ по языку Haskell

03.05.2015, 21:17. Просмотров 4906. Ответов 14
Метки нет (Все метки)

В этой теме будут приводиться часто задаваемые вопросы по языку Haskell и ответы на них.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2015, 21:17
Ответы с готовыми решениями:

Место ФП и Haskell в компьютерной индустрии (Для чего он нужен, этот Haskell?)
"У нас" ? А где преподавание этой экзотики на высоте? Добавлено через 2 минуты А где такие...

Чем определяется одинаковость урлов /page?FAQ и /page.php?FAQ
Подскажите, пожалуйста, какая опция php или настройка сервера позволяет не указывать .php в урлах?...

Обучение языку
Доброго времени суток! Уже год как изучаю C++ и Qt. Набрался кое-каких знаний. Теперь думаю...

Задачник по языку С++
Дайте пожалуйста какой-то задачник по С++. Желательно не Дейтела, так как он у меня есть. Заранее...

Тест по языку С
Всем привет. Вчера препод дал нам этот тест, а в нём то, чего мы еще не учили. Помогите пожалуйста!...

14
Curry
2952 / 2024 / 252
Регистрация: 01.06.2013
Сообщений: 4,420
Записей в блоге: 8
04.05.2015, 09:22 2
Вопрос: Что означает символ @ в Haskell?
Ответ:
Кликните здесь для просмотра всего текста
Символ @ используется в образцах и позволяет обращаться к не разобранному на образец значению по имени, находящимся непосредственно слева от @. Справа от @ находится образец. Например
Haskell
1
dublHead xx@(x:_) = x:xx
Функция dublHead продублирует первый элемент (голову) списка. После разбора образца, x примет значение первого элемента, а xx целого аргумента функции.

@ может быть применён и к частям образца.
Haskell
1
foo (a@(a1,a2):b@(b1,b2):xs) = (a1,b1):(a2,b2):b:a:xs
И быть вложенным
Haskell
1
bar a@(b@['<',x,'>']:_) = "a=" ++ show a ++ " b=" ++ show b ++ " x=" ++ [x]
2
Curry
2952 / 2024 / 252
Регистрация: 01.06.2013
Сообщений: 4,420
Записей в блоге: 8
14.05.2015, 16:06 3
Вопрос: Haskell (GHC) под Windows. Стоит написать в тексте программы русские буквы внутри строк, как
компилятор (или интерпретатор WinGHCi, CHCi) сообщают: lexical error in string/character literal (UTF-8 decoding error).
Ответ:
Кликните здесь для просмотра всего текста
Исходный файл должен быть в кодировке UTF-8 без BOM.
Преобразовать и редактировать файлы в этой кодировке под Windows умеет Notepad++ и, конечно, все средства разработки поддерживающие Haskell - см. следующий вопрос.

Вопрос: Какие есть средства разработки поддерживающие Haskell для Windows ?
Ответ:
Кликните здесь для просмотра всего текста
0
Curry
2952 / 2024 / 252
Регистрация: 01.06.2013
Сообщений: 4,420
Записей в блоге: 8
15.05.2015, 15:04 4
Вопрос : Какие есть online-IDE и компиляторы-исполнители кода для Haskell ?
Ответ :
Кликните здесь для просмотра всего текста

http://ideone.com/ - лучший из простых. Есть реклама.
http://rextester.com/runcode - без рекламы, но простенький.
http://www.tutorialspoint.com/compile_haskell_online.php - предложил XZentus.
http://tryhaskell.org/ - совсем простой, но на него есть ссылка с haskell.org, а с него на
https://www.fpcomplete.com/page/project-build - IDE. Нажимаем кнопку "Create New Project", далее предлагают создать проект по шаблону для некоторых задач. Например, сделать свой Web-сайт. Но, для начала, справа выбираем "Empty Project", даём ему какое ни будь название и получаем IDE в браузере (см. картинку).
2
Миниатюры
FAQ по языку Haskell  
15.05.2015, 15:04
semiono
12 / 12 / 0
Регистрация: 14.09.2010
Сообщений: 289
Записей в блоге: 6
16.05.2015, 09:38 5
Q Учебник по Haskell
A anton-k.github.io/ru-haskell-book/book/home.html
2
Curry
2952 / 2024 / 252
Регистрация: 01.06.2013
Сообщений: 4,420
Записей в блоге: 8
16.05.2015, 10:43 6
Вопрос : А другие учебники или статьи начального уровня на русском языке?
Ответ :
Кликните здесь для просмотра всего текста

Д. Шевченко. О Haskell по-человечески. Сайт автора.
Через тернии к Хаскелл - статьи. Предложил Catstail.
Р.Душкин Практика работы на языке Хаскелл - книга. Предложил Catstail.
Алехандро (Александро) Серано Мена. Изучаем Haskell - книжка недавно вышла на русском. Где взять на русском не знаю (можно в магазине купить, конечно). Читал на английском - Alejandro Serrano Mena: Beginning Haskell. Произвела очень приятное впечатление.
1
_Ivana
4062 / 1896 / 237
Регистрация: 01.03.2013
Сообщений: 5,147
Записей в блоге: 22
16.05.2015, 16:09 7
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Я, из перечисленного там, пользовался EclipseFP plugin for Eclipse IDE
А тем временем жизнь не стоит на месте, и, как говорится - "всё течет, и всё из меня" (С): http://jpmoresmau.blogspot.ru/2015/0...-at-least.html
1
Nikkovds
0 / 0 / 0
Регистрация: 09.05.2015
Сообщений: 9
18.05.2015, 16:39 8
Что означает $ ??? к примеру getone $ filter... или print $ tolist t...
Куски вырваны из контекста, но, думаю, вы меня поняли.
0
XZentus
201 / 199 / 65
Регистрация: 06.10.2013
Сообщений: 552
18.05.2015, 16:52 9
Правоассоциативный низкоприоритетный оператор. Реально позволяется просто избавиться от лишних скобок.

Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
-- например, надо посчитать cos (sin (tan (x)))
-- Можно записать это как
cos $ sin $ tan x
-- Вариант посложнее: есть функция, которую надо применить к списку, а список ещё создать надо
-- Можно написать:
map fun (filter fun2 [x..y])
-- Или:
map fun $ filter fun2 [x..y]
 
-- | Application operator.  This operator is redundant, since ordinary
-- application @(f x)@ means the same as @(f '$' x)@. However, '$' has
-- low, right-associative binding precedence, so it sometimes allows
-- parentheses to be omitted; for example:
--
-- >     f $ g $ h x  =  f (g (h x))
--
-- It is also useful in higher-order situations, such as @'map' ('$' 0) xs@,
-- or @'Data.List.zipWith' ('$') fs xs@.
{-# INLINE ($) #-}
($)                     :: (a -> b) -> a -> b
f $ x                   =  f x
Добавлено через 2 минуты
Сразу оговорюсь, что не во всех случаях с его помощью можно избавиться от скобок. Lisp'ерам не нужен.
1
XRuZzz
Антикодер
1614 / 775 / 44
Регистрация: 15.09.2012
Сообщений: 2,890
02.06.2015, 17:42 10
Функторы, аппликативные функторы и монады в картинках
- ещё не видел столь полезной и понятной статьи для новичков. Не мог не поделиться. Но такие статьи нужно читать как дополнение к изучению теории групп, категорий и т п
Сам метод поиска непонятных слов по картинкам очень полезен:
1 набираем непонятное слово в поисковике
2 нажимаем кнопку "картинки"[в то же время можно нажать и "видео", и даже "карты" при необходимости, когда не очевидно, что нужно искать в других категориях]
2
XZentus
201 / 199 / 65
Регистрация: 06.10.2013
Сообщений: 552
02.06.2015, 17:51 11
Часто бывает так, что нужно найти функцию, название которой не известно. Очень помогает поиск по типу здесь.
Например, нужна функция, которая бы убрала какое-то число элементов из начала списка. Логические рассуждения показывают, что ее тип должен быть, например, такой:
Haskell
1
[a] -> Int -> [a]
Ищем. Хоть и переставлены местами аргументы функции (т.к. ищущему их порядок по определению неизвестен), 1й же результат верен.
1
XRuZzz
02.06.2015, 18:02
  #12

Не по теме:

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

0
Curry
2952 / 2024 / 252
Регистрация: 01.06.2013
Сообщений: 4,420
Записей в блоге: 8
31.08.2015, 14:15 13
Вопрос : Что такое TH, он же Template Haskell ? Что такое Quasiquotation ?
Ответ : Введение в Template Haskell (ссылку дал Catstail)
template-haskell (англ.).
FIRST STAB AT TEMPLATE HASKELL (англ.).
Template Haskell 101 (англ.).
Quasiquotation 101 (англ.).
Template Haskell. GHC Language Features (англ.).
3
ct0r
Игогошка!
1797 / 704 / 44
Регистрация: 19.08.2012
Сообщений: 1,359
Завершенные тесты: 1
06.10.2016, 05:52 14
Вопрос: свободные монады? что, зачем?
Ответ:
http://degoes.net/articles/modern-fp
http://degoes.net/articles/modern-fp-part-2
http://blog.endpoint.com/2016/03/str...ee-monads.html

Вопрос: а какие есть способы получить изменяемую переменную?
Ответ: https://github.com/paf31/haskell-sli...le/Example.lhs
2
Curry
2952 / 2024 / 252
Регистрация: 01.06.2013
Сообщений: 4,420
Записей в блоге: 8
20.01.2019, 16:17 15
Вопрос : Я хочу передать отрицательное число как аргумент в функцию, а компилятор выдаёт ошибку
Haskell
1
2
3
4
5
6
7
8
Prelude> let foo x = x+1                                           
Prelude> foo -1                                                    
                                                                   
<interactive>:18:1: error:                                         
    * Non type-variable argument in the constraint: Num (a -> a)   
      (Use FlexibleContexts to permit this)                        
    * When checking the inferred type                              
        it :: forall a. (Num (a -> a), Num a) => a -> a
Ответ : -1 тоже является выражением в Haskell и его нужно заключать в скобки если передаёте как аргумент в функцию
Haskell
1
2
3
4
Prelude> foo (-1)           
0                              
Prelude> take (-1) "qwerty" 
""
0
20.01.2019, 16:17
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2019, 16:17

Литература по языку C#
Добрый день Изучаю программирование в университет, но чувствую недопонимание языка C#, думаю...

Вопросы по языку
У меня есть парочка вопросов по самому языку Паскаль: 1) для чего служит cdecl ? При работе с...

Экзамен по языку С++
Вот что-то решил сегодня потренироваться и прошел тесты+экзамен по С++ (без STL) на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru