to post messages and comments.

← All posts tagged Haskell

ucnv_getMaxCharSize strikes back.

Ставлю text-icu на Windows:
```
stack exec — pacman -Sy mingw64/mingw-w64-x86_64-icu
stack build text-icu
```

После этого, при попытке его использовать:
```
Prelude> import Data.Text.ICU
Prelude Data.Text.ICU> :t Root
Root :: LocaleName
Prelude Data.Text.ICU> Root
ghc.EXE: addDLL: icudt (Win32 error 126): The specified module could not be found.
```

Ок. Нашёл, где лежат dll-ки, положил копии с нужными именами (icudt58.dll -> icudt.dll).
(На всякий случай: инфа о пакетах в <stack_root>\snapshots\<...>\pkgdb\*.conf)
Теперь такая ошибка:
```
Prelude> import Data.Text.ICU
Prelude Data.Text.ICU> Root
ghc.EXE: C:\stack_root\snapshots\61ba18c6\lib\x86_64-windows-ghc-8.0.1\text-icu-0.7.0.1-3ZPlchKHjedDm1t6cAa5us\HStext-icu-0.7.0.1-3ZPlchKHjedDm1t6cAa5us.o: unknown symbol `ucnv_getMaxCharSize_58'

ghc.EXE: unable to load package `text-icu-0.7.0.1'
```

Погуглил. Есть пара похожих случаев. То ли версии icu 57, 58 проблемные, то ли либа text-icu что-то не учитывает.
github.com
Ещё вспомнил про #2885797 .

В итоге скачал icu версии 59, удалил text-icu, переустановил text-icu с указанием путей до этой версии.
```
stack exec — ghc-pkg unregister --force text-icu
stack install text-icu --extra-lib-dirs=C:\...\icu59\bin64 --extra-include-dirs=C:\...\icu59\include
```
Заработало.

Курс Functional Programming In Haskell (University Of Glasgow) на FutureLearn на поверку оказался вообще ни о чём. Черновик курса, набор недописанных плохо упорядоченных материалов. Лекторы неинтересные.

Dear FutureLearner,
You previously registered interest in the course, Functional Programming in Haskell: Supercharge Your Coding.
You can now join the course, which will start on 18 September 2017:
futurelearn.com
The FutureLearn Team

Я уж думал, вот оно... Что-то как-то очень заранее предупредили.

hell yeah

Челледж "Завершить курс на 100%, чтобы можно было с чистой совестью сказать, что он говно" — выполнен.

Но я скажу мягче: курс сырой и несбалансированный. Неудачный формат изложения и множество методических просчётов.

Рад только за тех, кто пришёл задачки порешать. Должно быть неплохо для освежить в голове некоторые темы.

Prelude> a = 10
Prelude> odd a
False
Prelude> a = 10; odd a

<interactive>:78:9: error:
Parse error: naked expression at top level
Perhaps you intended to use TemplateHaskell

Как присвоить значения и вызвать использующую их функцию в одной строке в GHCi?

Существует целый ряд версий Haskell Platform. На момент разработки курса последней версией была Haskell Platform 2014.2.0.0, на которой курс и оттестирован. Версия компилятора GHC 7.8.2, входящая в Haskell Platform 2014.2.0.0, используется и для проверки домашних заданий. Поэтому по умолчанию рекомендуется пользоваться именно этой версией, ее можно скачать по ссылке downloads.haskell.org , выбрав файл, подходящий для вашей операционной системы (Linux, Windows, Mac) и аппаратной платформы (32/64 бита).
Последняя версия Haskell Platform (7.10.3), вышедшая 8 декабря 2015 года, доступна по ссылке haskell.org . При ее использовании, однако, типы некоторых стандартных функций могут отличаться от приводимых в курсе, помимо этого имеются некоторые изменения в иерархии стандартных классов типов. Вы можете использовать эту версию на свой страх и риск.

Last update: 10/14/2016
Актуальная версия на самом деле: The latest version of the Haskell Platform for Windows is 8.0.2.

Вопрос 1: как там на самом деле с обратной совместимостью в Хаскеле? Про проблемы вроде Python 2/3 я ничего не слышал. Но какие именно вещи могут работать иначе, если я попытаюсь использовать 8.0.2 как если это 7.8.2?

Вопрос 2: что-то я не доверяю русскоязычным курсам. Какой англоязычный курс подходит для знакомства именно с Хаскелем? (При условии, что я чуть-чуть трогал F#, видел курс про ML, не говоря уж об элементах ФП, присутствующих в других языках вроде C# и JS.)