[ /b/ /u/ /rf/ /dt/ /vg/ /r/ /cr/ /lor/ /mu/ /oe/ /s/ /w/ /hr/ ] [ /a/ /ma/ /sw/ /hau/ /azu/ ] [ /tv/ /cp/ /gf/ /bo/ /di/ /vn/ /ve/ /wh/ /fur/ /to/ /bg/ /wn/ /slow/ /mad/ ] [ /d/ /news/ ] [ Главная | Настройки | Закладки | Плеер ]

Ответ в тред 35693. [Назад]
 [ Скрыть форму ]
Имя
Не поднимать тред 
Тема
Сообщение
Капча Капча
Пароль
Файл
Вернуться к
  • Публикация сообщения означает согласие с условиями предоставления сервиса
  • В сообщениях можно использовать разметку wakabamark
  • На данной доске отображаются исходные имена файлов!
  • Разрешенные типы файлов: music, vector, pdf, image, archive, code, video, flash, text
  • Тред перестает подниматься после 500 сообщений.
  • Треды с числом ответов более 100 не могут быть удалены.
  • Старые треды перемещаются в архив после 40 страницы.

No.35693 Ответ
Файл: Haskell-Logo.svg
Svg, 1.42 KB, 602×425 - Нажмите на картинку для увеличения
Haskell-Logo.svg
Надеюсь, ещё не совсем вымерли упоровшиеся сабжем.
>> No.35694 Ответ
Правда, вопрос не о языке: мне нужны идеи. В очередной раз возникло желание на нём что-то написать, но идей нет. Ни одна из возникших идей не прошла отбор по главному критерию: это должно быть целесообразно писать на Хаскеле. GUI на нём пишутся плохо, сайтики уровня очередной имиджборды прекрасно пишутся и на пайтоне. Для realtime он не подходит. Числодробилки, классификаторы, алгоритмы над длинными строками мне писать как правило не приходится, потому как для всех базовых случаев находится библиотека на С/фортране с биндингами к тому же пайтону, а если уж и приходится, то задействовать всё равно нужно что-то императивное из вышеперечисленного, ввиду высокой предсказуемости воздействия тех или иных оптимизаций на уровень производительности вообще.

В общем, может есть идеи?
>> No.35695 Ответ
>>35693
Комбинические монадаторы парсеров.
>> No.35696 Ответ
>>35694
> В общем, может есть идеи?
Ты рассказал, для чего хаскель плох. а для чего он хорош?
>> No.35697 Ответ
>>35694
Серверы? Inb4 erlang лучше.
Как у вас с opengl?
С гуи прям таки плохо? Хуже, чем в clojure/seesaw?
ИИ, например? Хотя я сам не представляю, какие фичи языка нужны для ИИ(и полезно ли иметь либу декларативного программирования для этого).
>> No.35698 Ответ
>>35697
> ИИ, например? Хотя я сам не представляю, какие фичи языка нужны для ИИ
Для ИИ нужно хорошо уметь работать сравнивать огромные массивы, карты и списки. И вычислять при сравнении разные коэффициенты. Проблема в том, что если вычислять для всех элементов - времени никакого не хватит. Так что на каждом шаге расчёта часть путей выполнения программы эвристически отбрасывается.
>> No.35699 Ответ
>>35694
Компилятор хаскеля на хаскеле уже есть?
>> No.35700 Ответ
>>35699
Да.
>> No.35706 Ответ
>>35699
Нет.
>> No.35707 Ответ
>>35699
Возможно.
>> No.35709 Ответ
>>35699
Скорее всего.
>> No.35710 Ответ
>>35709
НИКАНОН.
>> No.35733 Ответ
>>35710
Это же фузи ложик
>> No.35738 Ответ
>>35699
Это вряд ли.
>> No.37605 Ответ
Бамп.
>> No.37613 Ответ
>>37605
Братишки, поделитесь, пожалуйста, книгой "Изучай Haskell во имя добра!"
>> No.37616 Ответ
>>37613
если на русском на рутрекере есть уже. на английском везде она есть
>> No.37624 Ответ
>> No.37626 Ответ
Файл: 1334255523948.jpg
Jpg, 1029.71 KB, 1550×1554 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1334255523948.jpg
Почему нынешнее haskell комьюнити превратилось в толпу восторженных детей, которые с восторгом носятся с любым баззвордом, и очень обижаются, когда их тыкаешь носом в то, что императивный мир в каком-то вопросе удобнее/давно ушёл вперёд?
Недавно на Stack Overflow какой-то умник опять ляпнул, что "FRP это суперкрутая секретная технология для игр". Этим его ответ и ограничивался, но он был заплюсован, будто некое откровение. Я мимоходом поведал, что в цивилизованном мире все давно пользуются физическими движками, которые задвинули поделки дядюшки Элиота и его fran в учебники по истории, и что этой убер-технологией никого не удивишь, что она умеет меньше, и менее декларативна. Шитшторм, отсутствие аргументов, отсутствие объяснений, чем же FRP вообще может помочь в описании логики игры, неспособность привести конкретную историю успеха, признание, что никогда не использовали FRP для этих целей.
Там же был задан вопрос, стоит ли использовать фп для некой задачи, связанной с обработкой изображений. Я честно отвечаю, что нет: контейнеры с константным доступом по ключу в терминах лямбда-исчисления невыразимы, поэтому массивы к haskell приклеены сбоку, хаками. И что код для работы с ними выглядит паршивее няшной (привёл пример даже). Но есть такие-то библиотеки (e.g. repa), которые это скрывают, однако если нужный алгоритм в них не будет реализован, то упс. В общем, мол, не советую. Минусы, удаление поста модераторами.
Какая-то секта, ей-богу.
Конечно не стоило, наверно, писать эти ответы в игриво преувеличенной манере, но на качества контраргументов это не оправдывает.
>> No.37627 Ответ
Файл: 1385239612240.png
Png, 207.48 KB, 600×500 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1385239612240.png
>>37626
Ну давай я тебе сообщу, что хачкелисты попали в лапки дядюшки Ортеги-и-Гассета. Будто тебе не понятно, без сторонних пояснений.
>> No.37656 Ответ
i = ['a'..] x = i !! 100500 В данном случае i станет массивом со 100500 объектами, а всё что в право вычислено не будет, потому что "не заказывали"? Это и есть ленивость?
>> No.37659 Ответ
>>37656
> i = ['a'..]
> x = i !! 100500
>> No.37662 Ответ
>>37656
Начнём с того, что список i массивом не станет.
>> No.37663 Ответ
>> No.37762 Ответ
Товарищи полтора хаскеллиста, получилось ли у вас установить SHIM %%http://www.vim.org/scripts/script.php?script_id=2356%% ? Существует ли вообще в природе какой-нибудь костыль для вставки отступов?
>> No.37765 Ответ
>>37762
Для хаскелля лучше использовать емакс.
>> No.37766 Ответ
>>37765
Лорчую вот этого.
>> No.37783 Ответ
>>37765
Роман с тобой не согласен.
>> No.37935 Ответ
Хаскеллисты, хаскеллисты, а какие есть удобные нотации, чтобы записывать разреженные помеченные графы? Вариант с функцией read не так уж плох, но хочется чего-то еще более удобного. Или все таки следует взять graphviz и ориентироваться на него как на стандарт?
>> No.37980 Ответ
>> No.37989 Ответ
Файл: 1206137597470.jpg
Jpg, 198.10 KB, 680×565 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1206137597470.jpg
>>37980
Круто, Душкин может радоваться, что его книги перестали быть самыми плохими. У меня нет слов, у меня просто нет слов.
>> No.38003 Ответ
>>37989
Поясни, пожалуйста, за Душкина. Про Haskell его книги не читал, но жду эту https://boomstarter.ru/projects/93363/kvantovye_vychisleniya_i_funktsi[...]vanie
>> No.38006 Ответ
>>38003
1) В его книгах нет ни должным образом расписанной теории, ни реального мира. Ну ладно, допустим, не всем нужно писать про зигоморфизмы. Но его "практические" примеры просто взяты из учебника информатики или какой-то школной олимпиады. В той же HSOE и практика практичнее и теория сильнее. Ну а Душкин -- это такой русский фансаб.
2) В последнее время он производит впечатление поехавшего.
>> No.38104 Ответ
Файл: Снимок-экрана-201...
Png, 212.62 KB, 1256×910
edit Find source with google Find source with iqdb
Снимок-экрана-2014-03-12-в-0.21.33.png
Файл: 1383657097752.jpg
Jpg, 646.66 KB, 2048×1536
edit Find source with google Find source with iqdb
1383657097752.jpg

Захотелось мне в очередной раз написать маленький язык программирования... Чтобы проверить, что получается, когда убираешь тьюринг-толстоту. На ум (который, очевидно, был не в лучшей форме) пришли системы переписывания, думалось-то что они маленькие и симпатичные, нормальные алгоритмы маркова типа, ну или рефальчик какой-нибудь. После гугления интернетов на предмет gentle introduction to xxx и yet another xxx manual нашлась какая-то презентация с историческими выкладками и ТУТ МАРМЕЛАД ПАСТИЛА ВИЛЛИВОНКА ЗОЛОТЫЕ БИЛЕТЫ ГНОМИКИ БЕШЕНО ПЬЮТ ЧАЙ ЗАКУСЫВАЮТ КРУСССАНАМИ.

Эта теория переписывания монстр похлеще лямбда-исчисления и иже с ним, да и само лямбда-исчисление это один видов TRS. Хотя может паника напрасна, не все так плохо, и, если ограничиться SRS (strings rewrite systems), то будет примерно то, что хочется.
>> No.38108 Ответ
>>38104
Чё сказать-то хотел?
>> No.38110 Ответ
>>38108
Тщетно бытие.
>> No.38131 Ответ
>>38104
> Захотелось мне в очередной раз написать маленький язык программирования...
Загугли "Understanding and Writing Compilers" (Richard Bornat)
>> No.38137 Ответ
>>38131
> "Understanding and Writing Compilers" (Richard Bornat)
Спасибо, но как поперек батьки в пекло не лезут, так и компилятор вперед языка не пишут. Интересует-то не факт получения какого-нибудь там компилятора.exe, а игры с языком "чтобы проверить, что получается, когда убираешь тьюринг-толстоту".

Вот смотри, возьмем простейшую систему переписывания строк (SRS) - нормальные алгоритмы Маркова, такие что их правая часть обязательно меньше левой (1), а за нормальную форму считается значение, полученное при совпадении правила с точкой (2). Полученная система будет являться худой по Тьюрингу (потому что, например, на ней нельзя реализовать функцию 7 -> 1111111, в силу (1)), будет гарантированно останавливаться на строках конечной длины (опять же в силу (1)), не будет нормализующей (т.е. нет никаких гарантий получения на выходе нормальной формы, необязательно алгоритм доберется до правила с точкой, прежде чем съест строку). Теперь дело за "малым": надо на этом сокровище написать что-нибудь отдаленно напоминающее действительность, потом это же самое написать на канонических марковских алгоритмах и посмотреть на разницу.

Потом наверняка захочется, чтобы система стала, помимо прочего, еще и нормализующей, для чего ее нужно будет типизировать, но это совсем отдаленное будущее, мне бы хотя бы второй абзац этого сообщения осилить.
>> No.38157 Ответ
>>38131
А мне она не понравилась. Во-первых, опять куча пространных рассуждений о том, что компилятор должен и не должен делать, опять без какой-то конкретики. Во-вторых, написана таким языком, что я в середине первой главы понял, что введение уже закончилось.
>> No.38271 Ответ
Файл: mushroom_hunter.jpg
Jpg, 101.71 KB, 789×1024
edit Find source with google Find source with iqdb
mushroom_hunter.jpg
Файл: beginning_haskell...
Jpg, 15.82 KB, 300×300
edit Find source with google Find source with iqdb
beginning_haskell.jpg

Книжка, по отзывам не хуже RWH. Несколько месяцев как вышла, но на варезниках пока нету.
>> No.38373 Ответ
Ам, а после LYAH чего делать? Библиотеку сидеть читать?
Хотелось бы все-таки пописать чего-нибудь. Олимпиадные задачки - это конечно отлично, но нет ли более интересных тем, на которые можно писать? Скажем, по времени я готов тратить месяц ~3 часа в день. Вот, под такое описание есть задачи?
>> No.38376 Ответ
>>38373
apt-get install xmonad
>> No.38379 Ответ
>>38376
И сразу фейл. В дебиане ископаемая xmonad, которую ты чёрта-с-два соберешь. Ставить надо из cabal.
>> No.38380 Ответ
>>38379
намек, не более
>> No.38395 Ответ
>>38373
Сделай альтернативу XMind, например.
>> No.38433 Ответ
>>38373
http://www.ozon.ru/context/detail/id/4628675/
Бери, что понравится и реализуй. Навряд ли найдёшь именно эту книжку в сети, но что-то подобное должно быть.
>> No.38437 Ответ
>> No.38439 Ответ
>>38437
>>38433
>>38395
>>38380
>>38379
>>38376
ушел писать на крестах
>> No.38460 Ответ
>>38437
Неумная шутка. т.к. играть в Го компьютер пытаются научить уже долго, и пока без особых успехов. Ты б ему ещё трёхмерные или гексагональные шахматы реализовать предложил, блин Какие-нить шашки или карточные игры подошли бы больше.
>> No.38465 Ответ
>>38460
А чем трёхмерные шахматы отличаются от обычных? Алгоритм примерно один, насколько я представляю, вся разница - в наборе эвристик.
>> No.38466 Ответ
Файл: 1395793945881.jpg
Jpg, 305.29 KB, 1261×1000 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1395793945881.jpg
>> No.38480 Ответ
>>38465
Не успеешь понять, что тебе так здорово склевало моцк: язык, который ещё учишь, или задача, которую надо адаптировать. По отдельности оно ещё ничего, а вот вместе уже песец.
>> No.38481 Ответ
Файл: 53a2c9a8ec5817c6e8e423e052b28199.jpg
Jpg, 109.75 KB, 521×794 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
53a2c9a8ec5817c6e8e423e052b28199.jpg
>> No.38511 Ответ
Файл: Beginning-Haskell-A-Project-Based-Approach.pdf
PDF, 4616.11 KB, 540×666, 408 страниц - Нажмите на картинку, чтобы скачать файл
Beginning-Haskell-A-Project-Based-Approach.pdf
>>38271
> на варезниках пока нету
Пару дней назад появилась.
>> No.38512 Ответ
>>38511
Gracias
>> No.38515 Ответ
Файл: Alice_in_Wonderland_pt1_by_imaginism.jpg
Jpg, 266.69 KB, 1500×814 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
Alice_in_Wonderland_pt1_by_imaginism.jpg
>>38511
ありがとう ございます ❣
>> No.38522 Ответ
Анон, я хочу изучить функциональное программирование. Именно как пардигму со всеми её терминами, лямбда-исчислением и каким-нибудь чисто функциональным ЯП. Какую книгу мне следует взять?
>> No.38523 Ответ
>>38522
Да, я уже знаком с ООП на некотором уровне.
>> No.38531 Ответ
>> No.38534 Ответ
В интернете написано, что пакет haskell-platform должен существовать для убунту. Но при установке мне пишет, что не находит такой пакет. Что это за фигня? 13.10
>> No.38535 Ответ
>>38534
sudo apt-get update
>> No.38536 Ответ
>>38531
Мельком глянул - на удивление хорошая книжка. От себя посоветую классику: B. Pierce, Types and Programming Languages. Хороша как введение в теорию.
>> No.38537 Ответ
>>38535
Не, не помогает. Пишут, эти мудаки себе ногу прострелили с версиями, вот и не установишь нормально ни в 13.04, ни в 13.10. Блядь, надо выбросить это дебил-френдли говно и поставить другой дистр, может лучше будет.
>> No.38538 Ответ
>>38537
Мяту. Бятя говорит молодца, хорошо зделали.
>> No.38539 Ответ
>>38537
Как нету? Вот же оно: http://packages.ubuntu.com/saucy/haskell-platform
>> No.38540 Ответ
>>38539
Это лишь веб-страница, в которой сказано, что оно есть, то есть чья-то слюнявая хотелка. В реальности же нихуя нету. Enjoy your простреленная нога. APT посылает говоря, что нету.
>> No.38541 Ответ
Файл: haskell-platform.png
Png, 175.52 KB, 1366×768
edit Find source with google Find source with iqdb
haskell-platform.png
Файл: haskell-platform2...
Png, 176.25 KB, 1366×768
edit Find source with google Find source with iqdb
haskell-platform2.png
Файл: haskell-platform3...
Png, 164.83 KB, 1366×768
edit Find source with google Find source with iqdb
haskell-platform3.png

>> No.38542 Ответ
>>38541
Усо, на стековерфлоу сказано, что в 13.10 проблема не решена. В чём причина? Мне пишет, что такого пакета нет. Просто нет и всё.
>> No.38543 Ответ
>>38542
Катни свой /etc/apt/sources.list, может у тебя там зеркало замшелое или еще что.
>> No.38544 Ответ
>>38542
а ручками можно собрать?
>> No.38547 Ответ
Файл: 8_vDO1EogiE.jpg
Jpg, 42.08 KB, 604×216 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
8_vDO1EogiE.jpg
>>38544
> а ручками можно собрать?
"Легким движением ./configure && make && make install любой дистрибутив превращается в слаку."

мимопроходил
>> No.38550 Ответ
>>38544
Я остановился на онлайн-интерпретаторах. Мне только поиграться и узнать, о чём весь этот шум.
>> No.38551 Ответ
>>38550
какой шум?
>> No.38552 Ответ
>>38551
Шум о ФП же. Как это, какой шум?
>> No.38553 Ответ
Файл: l_73ae8961.jpg
Jpg, 21.49 KB, 320×240 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
l_73ae8961.jpg
>>38531
> С символом | мы уже познакомились, он указывает на альтернативы, объединение пишется через пробел. Так, фраза означает, что тип Time – это значение с меткой Time, которое состоит из значений типов “час”, “время” и “секунда”, и больше ничего. Метку принято называть конструктором.
> data Time = Time Hour Minute Second
Чёрт, анон, вот конкретно это реально невозможно понять. Какой конструктор, какая метка, какое значение? Звучит и выглядит и выглядит как тарабарщина. Можешь объяснить?
>> No.38554 Ответ
>>38552
фп уже пол века существует
>> No.38558 Ответ
>>38537
Haskell platform нинужен. Ставишь GHC, cabal-install, cabal-dev и всё.
>> No.38563 Ответ
>>38553
Всё просто.
data ИмяТипа = ИмяКонструктора Значение1 Значение2
-- Значение1 и Значение2 должно быть уже где-то определенными типами, вроде Integer или String. Можно и самому определить, например:
data Значение1 = Значение1
data Значение2 = Значение2
-- Конструктор типа и сам тип обычно называют одним именем, хотя можно написать
data Time = Yoba Hour Minute Second
-- А еще конструкторов у одного типа может быть несколько, как со значениями, так и без них, для этого используется |
data ИмяТипа2 = Конструктор1 Значение1 | Конструктор2 Значение 2
Если сравнить с ооп, будет примерно так: имя типа (метка) - название класса, конструктор типа - конструктор класса, значения - типы полей класса.
>> No.38564 Ответ
>>38547
> make install
   checkinstall
Пофиксил тебя.
>> No.38567 Ответ
>>38558
если только играться в репл, то hugs может подойдет?
>> No.38568 Ответ
>>38563
То есть
data Time = Time Hour Minute Second
- это кортеж из трёх значений трёх соответствующих типов? А почему в записи записи некоторых типов конструкторы пропущены? Зачем они вообще?
>> No.38584 Ответ
>>38568
> А почему в записи записи некоторых типов конструкторы пропущены?
Конструкторы никогда не опускаются, LOL. Ты наверное имеешь ввиду "нулярные" типы:
[code]
-- Объявление "обычного" типа
data IpAdress = IpAdress String | IP String -- Например, (IP "127.0.0.1").
                                          -- Можно сказать, что (IpAdress "127.0.0.1")
                                          -- и (IP "127.0.0.1") относятся к одному типу.
-- Объявление "нулярного"
data Color = Red | Blue | Green | Yellow -- Здесь указываются лишь конструкторы, не содержащие значений
                                          -- Да, иногда нужно и такое.
[/code]
И вообще, прочитай для начала хотя бы вот это: http://ohaskell.ru/
А потом вот это: http://learnyouahaskell.com/
>> No.38591 Ответ
Файл: Снимок-экрана-08.04.2014-10:31:46.png
Png, 38.50 KB, 750×307 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
Снимок-экрана-08.04.2014-10:31:46.png
>> No.38592 Ответ
>>38567
Нет, он устарел. Актуален Haskell 2010, а hugs, емнип, 98.
>> No.38610 Ответ
>>38584
> конструкторы, не содержащие значений
А, так бы сразу и сказали.
http://learnyouahaskell.com/ - я начал с этого. Сразу всё ясно. Гораздо понятнее чем то, что >>38531-кун написал. Там вообще чувак определяет нулярные типы и никак не упоминает конструкторы. Что уж тут понять можно?
>> No.38611 Ответ
>>38610
там все понятно
> Там вообще чувак определяет нулярные типы и никак не упоминает конструкторы
> Метку принято называть конструктором.
> Конструктор может быть и самостоятельным значением, как в случае True или January.
>> No.38613 Ответ
>>38611
> Конструктор может быть и самостоятельным значением, как в случае True или January.
Если б он сказал, что он может не принимать никаких значений, быть нулярным, то было б ясно, а как понять, кто такой самостоятельное значение, кто его знает. Но главное, надо было заявить о существовании конструкторов, ещё когда писалось Bool = True | False
>> No.38617 Ответ
>>38613
> Если б он сказал, что он может не принимать никаких значений, быть нулярным, то было б ясно
> Наш новый тип Bool является либо словом True, либо словом False. В этом типе есть только понятия, но нет способов комбинирования
> В этом типе есть только понятия, но нет способов комбинирования
дальше пишет про
>> No.38618 Ответ
>>38617
Мы точно на одном языке говорим? Какие ещё способы комбинирования? Нету тут никакого комбинирования. Бред, это словосочетание абсолютно неуместно и сводит с понимания. В конце концов точно нет никаких способов.
>> No.38619 Ответ
>>38618
> Какие ещё способы комбинирования? Нету тут никакого комбинирования
ruwiki://Алгебраический_тип_данных
ruwiki://Тип-произведение
https://www.fpcomplete.com/school/to-infinity-and-beyond/pick-of-the-w[...]types
>> No.38621 Ответ
>>38619
Очень круто, только вот в книге этого нету. Если бы я знал хаскель заранее, то я бы не читал новую книгу для изучения хаскеля с нуля, а то ещё стек переполнится.
>> No.38622 Ответ
>>38621
> только вот в книге этого нету
http://anton-k.github.io/ru-haskell-book/book/3.html
>> No.38623 Ответ
>>38622
Слишком поздно. Зато рекурсивный тип дали слишком рано. То, что он рекурсивный, даже не упомянуто.
> Мы узнали, что при их построении используются две основные операции, это сумма и произведение типов.
В этом абзаце они ещё не упоминались.
> Недопустимых значений конечно гораздо больше. Такое проявляется и в естественном языке, бессмысленных комбинаций слов гораздо больше, чем осмысленных предложений.
Да этот автор - наркоман. Это не книга, а фрактал галлюцинаций.
>> No.38624 Ответ
>>38623
> То, что он рекурсивный, даже не упомянуто
> Это рекурсивное определение, они встречаются в Haskell очень часто. Если это пока кажется непонятным, не пугайтесь, в следующих главах будет представлено много примеров с пояснениями.
> Да этот автор - наркоман. Это не книга, а фрактал галлюцинаций.
welcome to enterprise
http://docs.oracle.com/javase/tutorial/java/
>> No.38625 Ответ
>>38624
> Это рекурсивное определение, они встречаются в Haskell очень часто. Если это пока кажется непонятным, не пугайтесь, в следующих главах будет представлено много примеров с пояснениями.
На той странице нету этой фразы, ты! Ясно, я понял. Кто-то переставил в этой книге все предложения местами! Надо перебрать все перестановки предложений и тогда станет ясно! Как я уже говорил, http://learnyouahaskell.com/ пошла почему-то гораздо яснее.
>> No.38626 Ответ
>>38625
удачи
>> No.38627 Ответ
>>38626
Что не так?
>> No.38629 Ответ
>>38627
все хорошо. зря книгу ругаешь, книга хорошая. с лямбдами поиграть можно в http://habrahabr.ru/post/193920/ например. не обязательно хаскелл
>> No.38632 Ответ
>>38610
> Там вообще чувак определяет нулярные типы и никак не упоминает конструкторы. Что уж тут понять можно?
> В этой главе мы пробежимся по нему, охватив одним взглядом целиком весь язык. Несколько наглядных конструкций, немного моих пояснений, и вы поймёте, что к чему. Если что-то сразу не станет ясно, или где-то я опущу какие-то пояснения, будьте уверены – в следующих главах мы обязательно обратимся к этим моментам и обсудим их подробнее.
>> No.38639 Ответ
Анон, а можно программы на хаскеле встраивать в дргуие языки или вызывать из других языков? Или я чего-то не понимаю или на нём удобно реализовывать чистые функции и только их. Было бы интересно, если можно было делать вставки хаскеля в обычные программы.
>> No.38642 Ответ
>>38639
Можно собрать в библиотечку (.so/.dll) и оттуда вызывать. Вот пример для питона: https://wiki.python.org/moin/PythonVsHaskell#Using_both_Python_.26_Has[...]8-.3B
Смотри также http://www.haskell.org/ghc/docs/latest/html/users_guide/using-shared-libs.html
>> No.38643 Ответ
>>38639
Можно, но только с помощью FFI. А FFI GHC -- это боль и унижение, поверь. Ещё есть RPC.
В ghc 7.8 будет js backend. Cкриптоту встраивать должно быть просто.
А вообще,
> Или я чего-то не понимаю
This.
>> No.38665 Ответ
А есть какая-нибудь книга или статья с примером создание не очень маленькой программы на хаскеле, или просто пример программы, чтобы посмотреть, как конкретно на практике применяются эти >>=-штукенции? С функторами и аппликативными функторами вроде всё просто, но трудно понять, зачем нужны монады и моноиды. И вообще, посмотреть, как пишут код на хаскеле.
>> No.38666 Ответ
>>38665
RWH.
>> No.38667 Ответ
>>38665
что такое функтор?
>> No.38669 Ответ
>>38667
То, к чему можно применить банальный метод .foreach, десу. Примерно. Когда можно применить функцию к элемент(ам/у) в объекте. Зачем ты спросил?
>> No.38670 Ответ
>>38669
> foreach
> No results found
> создание не очень маленькой программы на хаскеле, или просто пример программы
есть xmonad
> 56 KB (source code)
>> No.38679 Ответ
>>38669
Щито? Какие ещё объекты? Функтор -- это тип, для которого определён метод fmap, подчиняющийся правилам:

fmap id = id
fmap (p . q) = (fmap p) . (fmap q)

И всё. Это и есть определение.
>> No.38852 Ответ
>>38851
Какие?
>> No.38853 Ответ
Файл: s.png
Png, 2.14 KB, 259×38 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
s.png
>>35693
Как вы ставите эти кавычки?
>> No.38854 Ответ
>>38852
Вот эти >>38853
>> No.38855 Ответ
>>38854
Это же мамоёбский апостроф, а не кавычка. Вроде. Я всё равно ставлю кавычку вместо него.
>> No.38856 Ответ
>>38855
Лучше возьмите вот этот набор кавычек: “„”«¨»‘`’'"'".
>> No.38857 Ответ
>>38856
> “„”
Как на говно.
> ¨
У вас е из-под точек выпало

Вообще, кривые кавычки не нужны, это не скобки, чтобы овер9000 уровней вложенности делать.
>> No.38858 Ответ
>>38857
> это не скобки, чтобы овер9000 уровней вложенности делать
Ах да, как же я забыл ‹ франзузкие ‹ одинарные кавычки › ›?
>> No.38859 Ответ
>>38855
Бэктик (backtick или grave accent) это, блиать.
>> No.38860 Ответ
Файл: w.png
Png, 11.16 KB, 456×166 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
w.png
>>38855
> Я всё равно ставлю кавычку вместо него.
Так можно ставить кавычку? пикрилейтед
>> No.38862 Ответ
>>38860
Нет
>> No.38863 Ответ
>>38853
Что не так? Они же есть на клавиатуре.
>> No.38871 Ответ
Файл: 1399360480961.png
Png, 0.96 KB, 300×20 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1399360480961.png
>>38863
Ох вей и правда.
>> No.39305 Ответ
А что за мода пошла на этот хачкель? Он как-то используется на практике, или интерес чисто академический - поиграться с всякими перделками синтаксическими?
мимотреднечитал
>> No.39306 Ответ
>>39305
Во все языки понапихали много похожих фичь, никто не юзает хаскель, но все хотят быть на него похожим хотя бы немного
>> No.39307 Ответ
>>39305
Перделки в хаскеле в первую очередь семантические. Синтаксис-то у него как раз весьма прост.
>> No.39646 Ответ
Доброаноны, накидайте пожалуйста информации по RWS и RWST (можно и на английском). Google не помог.
>> No.39652 Ответ
Смотрите, друзья, простая задачка на ДП: https://www.hackerrank.com/contests/lambda-calculi-jun14/challenges/dice-path
Вот моё решение на Хаскеле: https://gist.github.com/anonymous/4d90cd047275e8d2fcdd
Вроде всё нормально, работает отлично, но как-то вот бесит повсюду за собой таскать этот мап для мемоизации. Есть какие-нибудь более красивые возможности для мемоизации функций с несколькими аргументами?
>> No.39667 Ответ
>>39652
На идеон заливай, сучечка.
>> No.39669 Ответ
Файл: un.jpg
Jpg, 575.59 KB, 1400×785 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
un.jpg
>>39652
http://conal.net/blog/posts/nonstrict-memoization
> функций с несколькими аргументами
Hint: их не бывает.
>> No.39759 Ответ
>>39652
Если тебе не нравятся лишние аргументы в сигнатуре функции то, специально для тебя придумана монада Reader.

Если тебя не устраивает асимптотика решения то в хаскеле есть многомерные массивы как неизменяемые, так и изменяемые(правда тут надо понимать монаду ST)

Если тебя интересует готовое решение по мемоизации, то стоит взглянуть на Data.Function.Memoize (что легко находится по 1 запросу гугла, так что тебе должно быть стыдно)

Если тебе просто лень таскать за собой мап, но ты готов вместо этого написать немного кода то есть заметка прдложенная >>39669

А вообще я бы тебе за такой код руки бы оторвал (Что тебе мешало хотя бы вынести твой мап в отдельный тип?). Тебя извиняет только то, что это олимпиадная задача.

captcha: дураком пупсик
>> No.40026 Ответ
Всем монад, посоны.
Можете привести пример bind без ассоциативности?
>> No.40027 Ответ
>>40026
Ты про >>= штоле? Это нарушает монадные законы => этого не должно быть.
>> No.40028 Ответ
>>40027
Да, про (>>=). Знаю, что нарушает, и что не должно быть, но я вот что-то не могу представить, как подобное может выглядеть (т.е. чем может этот закон нарушиться).
>> No.40029 Ответ
Файл: Konachan.com-104299-sample.jpg
Jpg, 1001.22 KB, 1500×1091 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
Konachan.com-104299-sample.jpg
>>40028
Первый пример, приходящий в голову: Writer над "моноидом" со сломанной ассоциативностью, вроде (ℤ, -, 0).
>> No.40032 Ответ
>>40029
Спасибо, попробовал.
>> No.40603 Ответ
Файл: haskell-jobs.png
Png, 38.96 KB, 1255×320 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
haskell-jobs.png
Есть ли здесь аноны, которым посчастливилось найти хаскелеработу? Поделитесь советами, или просто опишите, чтобы другие могли за вас порадоваться.
>> No.40614 Ответ
>>40603
Удалось только эрлангоработу найти. Erlang is shit! SHIIIIT!
>> No.40625 Ответ
Файл: ubuntu.gif
Gif, 12346.42 KB, 320×180
edit Find source with google Find source with iqdb
ubuntu.gif
Файл: talking_captcha.png
Png, 0.85 KB, 300×20
edit Find source with google Find source with iqdb
talking_captcha.png

>>40614
> Erlang
Можешь чего накидать по эрлангу уровня познакомиться со всем этим? Интересно вдруг стало. Хочется знать, что из себя оно представляет. Вообще требую годных манов по тому, как себя вести императивщику в вашей декларативной лавке. С совсем базовыми понятиями знаком и даже немного с монадокостылём.
>> No.40626 Ответ
>>40625
Что ты понимаешь под "монадокостылём"?
>> No.40627 Ответ
>>40626
Я о том костыле, который запихивает императивщину в хаскель.
>> No.40628 Ответ
Файл: Konachan.com-96839-sample.jpg
Jpg, 1032.21 KB, 1500×844 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
Konachan.com-96839-sample.jpg
>>40627
Не знаю, в каком душкине или хабре ты вычитал, что монады это "костыль, который запихивает императивщину в хаскель", но советую больше оттуда ничего не читать. Это не имеет отношения к реальности. Если тебя действительно интересуют костыльные методы реализации IO в чистых языках, читай здесь: enwiki://Uniqueness_type
>> No.40629 Ответ
Файл: EX9GNqEFcxE.jpg
Jpg, 83.50 KB, 604×453 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
EX9GNqEFcxE.jpg
>>40628
Тогда объясни мне на пальцах за эти ваши монады. Я более или менее представляю себе монаду State. Для меня монада это не более чем порядок выполнения операций. Когда у меня в наличии изменяемое состояние, мне нет нужды изучать монады. Ну кроме случаев, когда мне нужно заскриптовать нечто очевидное применение монады State в императивщине. Потому мне и кажется это костылём.

Вообще единственное, чем мне по настоящему не нравится хаскел - это вырвиглазный синтаксис. Ибо с большим количеством сахара я только чай люблю.
>> No.40631 Ответ
>>40629
> Тогда объясни мне на пальцах за эти ваши монады.
Просто посмотри определение класса в коде Prelude, больше никакого глубинного смысла там нет. Если тебе кажется костыльной реализация IO с помощью этого формализма, то лучше посмотри ссылку из предыдущего поста: так было до того, как придумали монады. Вот там костыль, да. Пo сравнению c ним Monad.ST -- весьма изящная штука.
> Вообще единственное, чем мне по настоящему не нравится хаскел - это вырвиглазный синтаксис.
Т.е. вездесущие lifted типы, monomorphism restriction, исключения и Prelude тебе нравятся? Ну ок.
>> No.40636 Ответ
>>40614
Да уж, Erlang, как и Scala с Clojure, более доступны в плане поиска работы, но даже не знаю, что хуже - чисто императивное, или недофункциональное. Попытки писать "в функциональном стиле" на языках, "поддерживающих ФП" на уровне "у нас есть замыкания", раздражают не меньше, чем написание императивного кода со всеми его граблями: в последнем случае и не надеешься на удовлетворительный результат.
>>40628
Доброчую, но уникальные типы, к слову, не только для IO-костылей используются: они могут быть очень полезны для оптимизации, апдейтов в частности.
>>40631
> Просто посмотри определение класса в коде Prelude, больше никакого глубинного смысла там нет.
Эй, а как же теория категорий и их законы? Это же часть няшного фреймворка для мышления, рассуждений и проектирования. Хорошо, конечно, что их можно использовать и в отрыве от остального, но всё же.

Алсо, раз уж речь зашла об 'IO-костылях": что думаете о программах как функциях на бесконечных списках? Почему вообще эту идею забросили?
>> No.40637 Ответ
А как вы относитесь к программистам, пишущим на простых популярных языках программирования?
>> No.40647 Ответ
>>40637
Предположу что "простых" значит "с низким порогом вхождения для людей со средней подготовкой". Всё-таки тот же Хаскель, или даже что-нибудь вроде Агды, представляется куда более простым, если рассматривать со стороны лежащей в них теории, чем большинство императивных языков. Или, например, Scheme, если сосредоточиться на спецификации и/или синтаксисе. Или ассемблер/С, если смотреть со стороны железа, "расстояния" от конкретного кода до машинного.

Напрашиваются шутки, но в общем-то меня раздражает только когда разговор с такими программистами начинает напоминать басню "свинья под дубом", в частности - с отрицанием влияния математики/теории на программирование, и всем сопутствующим. В остальных случаях - ну, пишут что-то зачем-то, как и программисты на других языках, и если это кого-то делает более счастливым - то это хорошо, наверное. К тому же, периодически замечаю, что программисты на таких языках более продуктивны, меньше подвержены излишнему перфекционизму.
>> No.40648 Ответ
>>40647
Потерял запятую, sfx.
>> No.40650 Ответ
>>40647
Суть вкратце: "Я смотрю на них как на говно".
>> No.40652 Ответ
>>40636
> Эй, а как же теория категорий и их законы?
Большинство алгебраических и теоретико-категорных структур и законов на хаскеле не выразимо, к сожалению. В т.ч. и монады.
>> No.40654 Ответ
>>40652
Да, но это же и есть "глубинный смысл" (хотя, возможно, мы под этим понимаем что-то разное), который в Хаскеле вне кода, но который подразумевается.
>> No.40655 Ответ
Неужели нет какого-нибудь уодбного туториала по хаскелю, где бы кртко пояснялась суть языка?
Из тех, что пытался осилить:
лерн хаскель фор грейт гуд - в шутку сделано для детей, подходит только для детей
риал ворлд хаскеь - настолько уныло, скучно, тупо и беспробудно, что танненбаум кажется захватывающим чтивом
еще какие-то книги русских авторов - как фильм "таиландский вояж степаныча"
>> No.40659 Ответ
>>40655
> лерн хаскель фор грейт гуд - в шутку сделано для детей, подходит только для детей
По-моему, хорошая книга, я бы советовал дать ей второй шанс. Насчёт RWH - мне тоже не понравилась.
Ну и есть http://www.haskell.org/definition/haskell2010.pdf, и Викиучебник, и ещё много всего на http://www.haskell.org/haskellwiki/Learning_Haskell.
>> No.40660 Ответ
>>40655
Для совсем начинающих вроде HSOE была более-менее нормальной. Но эта книга сильно устарела. Если хочешь понять лежащую в основе теорию, начни с TAPL (там примеры на OCAML, но не суть).
>> No.40670 Ответ
Файл: c990140cca236e01784671fc4708b49c6f554075.jpg
Jpg, 222.53 KB, 600×539 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
c990140cca236e01784671fc4708b49c6f554075.jpg
>> No.40672 Ответ
Файл: Winter_by_muhoho_seijin.jpg
Jpg, 118.35 KB, 600×776 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
Winter_by_muhoho_seijin.jpg
Доброго дня, доброчаньки! Я поздно вечером посмотрел вчера часик видео вот с этого курса: https://www.edx.org/course/delftx/delftx-fp101x-introduction-functional-2126
Сделал кое-как домашку (я невнимательная сырно, так что 5 из 8 корректно). И вообще думаю-таки тыкать хаскелл и сюда писать об успехах. Ну и да, к сожалению, пока не вижу ни одной математической\риал ворлд задачи для которой он бы потребовался. Скорей, это развлечение. Я так понял, что у всех так в треде. Есть какой-то набор языков (у меня python, java, scala, lua...), с помощью которых я могу решить любую задачку. Хотя в очень влажных мечтах хочется написать понятный генератор парсеров, который на основании некоторого decision tree (типа билеты, театр, время, спектакль, место с нужными весами), парсит ответы пользователя и задает свои вопросы.
>> No.40673 Ответ
>>40672
> Ну и да, к сожалению, пока не вижу ни одной математической\риал ворлд задачи для которой он бы потребовался. Скорей, это развлечение. Я так понял, что у всех так в треде.
Не у всех. Использую Хаскель для всех задач, в которых нет ограничений на языки, а для развлечения - Агда, но даже её можно использовать для реальных задач.
>> No.40680 Ответ
>>40672
Ну и да, к сожалению, пока не вижу ни одной математической\риал ворлд задачи для которой он бы потребовался.
thesz.livejournal.com
>> No.40681 Ответ
>>40680
В том ЖЖ, разве, что-то указывает на то, что Хаскель "требуется" для чего-то? Тьюринг-полные языки, грубо говоря, взаимозаменяемы, если рассматривать только возможности вычислений.
Кстати, частенько слышу подобное ("не вижу необходимости использовать Х"), без обозначенных критериев необходимости. Нужно их сразу определять, ящитаю, а иначе каждый руководствуется своим субъективным видением. Хотя, они тоже зачастую субъективны.
>> No.40683 Ответ
>>40681
Ну в ЖЖ не указывает, но вот смотри какие у него есть файлики https://github.com/thesz/hhdl/blob/master/src/Hardware/HHDL/HHDL.hs

Файлики в 1235 строк так просто не пишут. Хотя это конечно аргумент уровня /pr/
>> No.40685 Ответ
Файл: Winter_by_JOEIAN.jpg
Jpg, 245.60 KB, 600×712 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
Winter_by_JOEIAN.jpg
>>40683
Ну этот чувак пишет парсеры context-sensitive grammars. Это довольно специфическая задача (потому что довольно общая), надо это понимать. Программистам нужны PEG-грамматики, причем желательно практически применимые библиотеки типа parboiled на скале. В NLP нужны context-free grammars, но там есть какбе стенфордский парсер, который с 90% вероятностью парсит естественный язык. Тут я сложил яйца в одну корзину - написание парсеров и их применение с точки зрения пользователя, но не суть. Суть в том, что чувак нигде особо не распространяется об общем контексте. Это напрягает. Вот, ребятки, вам много умных слов и код на 90% из pattern-matchingа.

Это так, просто набор наблюдений. Я ни разу не специлист в формальной теории языков.
>> No.40689 Ответ
>>40683
1235 строк - не так уж и много, но если цель - показать примеры использования вне хобби-проектов, то есть же http://www.haskell.org/haskellwiki/Haskell_in_industry.
>> No.40696 Ответ
Файл: Winter_Breeze_by_Sleepar.jpg
Jpg, 73.07 KB, 600×930 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
Winter_Breeze_by_Sleepar.jpg
Потратил сегодня часик на просмотр лекции про типы данных в haskell. Все как SML, короче. Я вот только не понял одного, что за тип у выражения:
twice f x = f (f x)

Или я очень уставший после работы, или не хватает воображения. Доброчаньки помогут?
>> No.40699 Ответ
>> No.40700 Ответ
Файл: girl_in_winter_by_Hinata411.jpg
Jpg, 144.96 KB, 721×1024 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
girl_in_winter_by_Hinata411.jpg
>>40699
Так я и сам могу. А вообще ответ такой: слева currying a-> b -> (что-то неизвестное)
но справа type inference говорит нам, что f - это функция типа a->a, ну и в итоге:
(t -> t) -> t -> t
Меня смущает просто, что справа композиция функций же. То есть можно было бы записать (если не обманывает гугол, то . - это в хаскеле композиция функций):
Prelude> let twice f x = f . f x
Prelude> :t twice
twice :: (b -> a -> b) -> b -> a -> a -> b
но чо-то не сходится. пойду спать.
>> No.40702 Ответ
>>40700
> Prelude> let twice f x = f . f x
(f . f) x
>> No.40710 Ответ
>>40699
:[]
((.) . (.))
Не удержался.
>> No.40973 Ответ
Как поставить гардов в одной строчке? Типа чтоб
is0 a | a == 0 = 1 | otherwise 0
>> No.40981 Ответ
>>40973
if else?
>> No.40983 Ответ
>>40981
Как то тупо получается, это была первая идея.
>> No.40986 Ответ
>>40973
Просто пиши в одну строчку.
> is0 a | a == 0 = 1 | otherwise = 0
>> No.40997 Ответ
>>40983
не робит же
>> No.40998 Ответ
>>40997
Что не робит? У тебя может где-то в другом месте ошибка?
>> No.41184 Ответ
>>35693
Вышел ещё один вырвиглазный перевод книжки по Haskell, доступно в бумаге и в pdf.
http://habrahabr.ru/company/piter/blog/244973/

Блин, ну почему издательство ДМК такие мудаки и не продают электронных версий своих книг?
>> No.41185 Ответ
>>41184
Потому что ананраммой для них будет МДК.
>> No.41186 Ответ
Файл: learn_haskell.jpg
Jpg, 29.22 KB, 248×350 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
learn_haskell.jpg
>>41185
Эта анаграмма им очень подходит, да.
>> No.41308 Ответ
Файл: 1397231188474.jpg
Jpg, 118.50 KB, 1280×720 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1397231188474.jpg
>>41184
> перевод на русский язык
>> No.41556 Ответ
>>41308
Что не так с этим кодом?
http://ideone.com/KACDJZ

Почему xor не работает также как +
>> No.41561 Ответ
>>41556
> Почему xor не работает также как +
Он не может определиться с типами. Подскажи ему, какого типа у тебя список. Хотя это довольно странно, обычно он тупо выбирал инт и успокаивался.

Ну и скобки вокруг xor'а не обязательны.
>> No.41563 Ответ
>>41561
Спасибо, поправил и заработало
http://ideone.com/KACDJZ
не ожидал что он так ступит, в такие моменты ошибки шаблоннов с++ мне кажутся не так уж и сложны
>> No.41565 Ответ
Файл: -.png
Png, 265.44 KB, 355×381 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
-.png
>>41556
>>41563
Не сразу сообразил в чём отличие.
>> No.42410 Ответ
Всем привет. Как сделать свой instance для метода read класса Read?
>> No.42412 Ответ
>>42410
По хорошему, класс Read определяется функцией readsPrec :: Read a => Int -> String -> [(a, String)], её нужно реализовавыть.
Пример в документации: http://hackage.haskell.org/package/base-4.7.0.2/docs/Text-Read.html#t:Read
>> No.42414 Ответ
Пусть есть некая функция вида (x, y : SomeType) -> (cond x y) = True -> SomeType. Как в Idris после ветвления в if-then-else/case/with с условием cond вызывать эту функцию? Очевидно, что условие выполняется, но как передать это в функцию? Refl не работает.
>> No.42416 Ответ
>>42414
Сам спросил, сам ответил.

Для этого есть класс типов DecEq с методом decEq, который после сравнения двух своих аргументов возвращает Dec (x1 = x2), который затем можно сопоставить с Yes ... или No .... Но лучше так не делать, а использовать специальные типы-соотношения, так как, к примеру, из x - y > 42 = True будет трудно вывести x - y > 3 = True.
>> No.43906 Ответ
Бамп!
>> No.44189 Ответ
Файл: Девушка-(49).jpg
Jpg, 131.08 KB, 800×800 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
Девушка-(49).jpg
Как совместить хаскель с микроконтроллерами ATmega? Гугл показал что теоретически это как-то возможно, все равно используя С для совместимости, но толкового гайда как это делается я не нашел, а очень-очень хочется раздвинуть границы удовлетворения.
>> No.44190 Ответ
>>44189
Невозможно это.
Никто в своем уме и доброй памяти не будет писать для микроконтроллеров на языках с динамическим выделением памяти, а тем более на языках с сборкой мусора. На платформах с ATmega просто нет достаточного количества оперативной памяти, чтобы позволить себе такую роскошь.
>> No.44191 Ответ
>>44190
Но для ардуино есть такие инструменты и на ютубе выложены видео довольно ресурсоемких устройств на хаскеле. У меня аж капча матерится внезапно.
>> No.44192 Ответ
>>44191
Так там, наверное, довольно жирные устройства с сотнями килобайт, а то и мегабайтами памяти, да и сильно порезанный и подкрученный на уменьшение расходов памяти рантайм как у elua или micropython.
А у меги памяти-то два килобайта. Куда там можно впихнуть динамическое выделение и рантайм с сборкой мусора?
>> No.44286 Ответ
Файл: 6d6272ee5f36081a107d1d18ce162c5a.jpg
Jpg, 212.87 KB, 2000×1111 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
6d6272ee5f36081a107d1d18ce162c5a.jpg
Я прочитал, что Хаскель - "орудие убийц", технология инопланетных цивилизаций. Начал читать книгу д. Шевченко "О Хаскель по-человечески" - книга написана очень годным языком и кратко, без воды, но к Хаскель у меня выработалось стойкое отвращение за, как сказал анон выше, "вырвиглазный синтаксис".
Для себя я сделал вывод, что Хаскель - не моё. Бесконечные переводы из одного типа в -> другой. Ноу вэй.
>> No.44410 Ответ
>>44189
Не совмещай хаскель с атмегами. Совмещай его с дешевыми одноплатниками типа малинки или CHIP. На всём, что меньше XMega, подобное не выйдет, а сама иксмега — это уже не совсем МК в общепринятом смысле.
>> No.44411 Ответ
>>44410
> иксмега — это уже не совсем МК в общепринятом смысле
Эдак у тебя ARM'овские контроллеры МК считаться не будут.
>> No.44417 Ответ
Файл: blues-brothers-this-is-glue-strong-stuff.jpeg
Jpeg, 37.01 KB, 640×450 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
blues-brothers-this-is-glue-strong-stuff.jpeg
>>44411
Ну в некотором роде так и есть.
>> No.44521 Ответ
>>35693
"Haskell -- это не чтобы работало, а чтобы дрочилось." (Лев Валкин a.k.a lionet.livejournal.com, глав.редактор "Практики Функционального Программирования".)
>> No.44534 Ответ
Какая книга самая глубокая по ФП, монадам, ленивым спискам и т.п.? Так чтобы не просто язык, а теория. Хорошо, если с математикой и нормальными определениями не на пальцах.
>> No.44545 Ответ
>> No.44564 Ответ
>>44545
Слово монада только в библиографии. Как так? Это не один из основных концептов? Я хуже всего понимаю именно их. Где книги по монадам. Есть прямо нормальные книги, с математикой и прочим?
>> No.44566 Ответ
>>44564
Хм, может по теории категорий почитать что-то?
>> No.44570 Ответ
>>44564
Да что вас всех эти монады так беспокоят? Это же просто костыли из хаскеля, позволяющие немножко поимперативничать в функциональном языке...
>> No.44571 Ответ
>>44570
Но они не позволяют поимперативничать, а только создают такую иллюзию.
>> No.44572 Ответ
>>44571
IO ещё как позволяет (ты можешь возразить, что оно просто возвращает экшены, а вся императившина в рантайме... но оно выглядит как императивщина и ведёт себя как императивщина). Остальные - да, локальная иллюзия императивности.
>> No.44574 Ответ
Файл: rail_by_kruczkowska-d6p67sn.png
Png, 1698.47 KB, 756×1056 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
rail_by_kruczkowska-d6p67sn.png
Анон, есть где-нибудь формальное описание хаскеля на языке чистой теории категорий? Особенно интересует категория Hask и функторы. Насколько я понял, функторы в хаскеле - это совсем не то же, что функторы в теории категорий.
>> No.44575 Ответ
>>44574
Ответ спустя годы меня тоже устроит, кстати.
>> No.45638 Ответ
Сап, я продолжаю попытку изучить Хаскель. Выходит еле-еле. Сейчас читаю
https://wiki.haskell.org/All_About_Monads
Почему-то это единственное внятное объяснение использования монад, которое я нашёл.

Кто-нибудь может объяснить мне, что значит вот эта строка:
data MyType = MT Int Bool Char Int deriving Show
А точнее, что такое MT. В гугле не нашёл, в описаниие синстаксиса в learn you a haskell for great good я этого не помню.
>> No.45644 Ответ
>>45638
Это символ, а в данном случае — конструктор типа MyType, то есть функция, принимающаяя аргументы (через каррирование) Int, Bool, Char и Int, возвращающая MyType.
>> No.45645 Ответ
>>45644
Там вместо MT всё что угодно может быть, да?
>> No.45646 Ответ
>>45645
Да, всё что может быть символом, который может быть data constructor'ом (Haskell98, 2.4):

conid -> large {small | large | digit | ' }
>> No.45663 Ответ
class MonadState m s | m -> s where
get :: m s
put :: s -> m ()
Кто-нибудь может объяснить, что означает эта запись? А точнее, что означают записи `m s | m -> s`, `:: m s` и `:: s -> m ()`?
Я так понимаю, `m s` - это один тип, но представимый в виде конструктора с одним параметром-типом? Но что такое `| m -> s` и `m ()`?

Синтаксис такой необычный, представляю, как там должен писаться компилятор под этот кошмар.
>> No.45664 Ответ
>>45663
Я нашёл, что это. Синтаксис, добавленный авторами компилятора, но не присутствующий в стандарте... Неудивительно, что в learnyouahaskell его нет.
>> No.45686 Ответ
Привет.

Есть какой нибудь смысл использовать Haskell для вычислений, скажем, в квантовой химии? Дело в том, что хочется чего-то экзотического, в плане того, чтобы можно было при необходимости задействовать множество парадигм. Я сам физик и пока слаб в CS, поэтому вопрос так размыт.
Вообще, есть много идей для различных алгоритмов, которые точно не использовались ранее конкретно в этой области, поэтому стою перед выбором языка реализации.
>> No.45690 Ответ
>>45686
Хаскель радикальный язык с кучей ограничений, который трудно поддаётся изучению даже опытному программисту. Смысл в увеличении надёжности благодаря сложной, гибкой и строгой системе типов, и благодаря ограничениям. А так же в увеличении способности менять программу при изменении требований и увеличении возможности повторного использования. Так это больше для больших проектов и уже опытных кодеров. Когда говорят, что Хаскель более понятен математикам - имеются в виду именно специалисты в дистретной математике, абстрактной алгебре и теоретической информатике. Специалистам в численных методах и мат. физике с хаскелем придётся наиболее туго. И этот язык редко используют на практике, показать кому-то потом твою программу будет из-за этого сложно.
У меня мало опыта в хаскеле, правда, но тем не менее.
>> No.45691 Ответ
>>45690
Я немало времени занимался алгебраической топологией и геометрией, поэтому знаком и с теорией категорий неплохо. Я не являюсь вычислителем, просто идеи хотел попробовать реализовать.
>> No.45728 Ответ
>>45686
> Есть какой нибудь смысл использовать Haskell для вычислений, скажем, в квантовой химии?

Ничего не знаю о квантовой химии, но скорее всего нет. О каких вычислениях идёт речь, к каким математическим объектам в итоге всё сводится? Поможет ли тебе гибкая система типов и lazy evaluation при работе с этими объектами?

> Дело в том, что хочется чего-то экзотического

Ну если так, то да.

Но если честно, не слышал ни одной success story хаскелла в научных вычислениях. Собственно, когда говорят о какой-то там связи хаскелла и математики, то возникает видимо некая путаница. Она (связь) если и есть, то именно с математикой в смысле мат.логики и теории типов, нежели с какими-то численными вычислениями.
>> No.45729 Ответ
Файл: Python_reticulatus04.jpg
Jpg, 144.78 KB, 1024×768 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
Python_reticulatus04.jpg
>>45686
В научном сообществе Питон пользуется популярностью. Скажем, первый же результат в гугле по запросу "python chemistry" - http://pyquante.sourceforge.net/

> PyQuante (Sourceforge Project Page) is an open-source suite of programs for developing quantum chemistry methods.

> чтобы можно было при необходимости задействовать множество парадигм
В Хаскелле-то как раз одна парадигма - функциональная. В Питоне поддерживаются и ООП.

> Я сам физик и пока слаб в CS
В смысле, слаб в программировании? Программирование =/= CS. А то сейчас уже чуть ли не CSS стали относить к CS. CS - это всё таки отдельная фундаментальная наука с множеством отдельных дисциплин, которым люди посвящают всю жизнь, а не один язык программирования. Изучают там всякие изоморфизмы Карри-Ховарда, лямбда-кубы, пи-калькалюсы и т.п., что тебе в твоей предметной области скорей всего не нужно.
>> No.45749 Ответ
>>45729
> Computer Science
https://youtu.be/RcTaweZMEzo?t=529
> ...math itself is just a corner of computer science... Computer science is the queen of sciences

Классный дядька. Один из создателей Standard ML
https://youtu.be/RcTaweZMEzo?t=125
> object-oriented mumbo-jumbo... I'm not interested in this. This is completely unimportant to me... That's a lot of nonsense.
>> No.45751 Ответ
>>45749
> math itself is just a corner of computer science
Это довольно жирное утверждение.
>> No.45760 Ответ
>>45751
Но он же обосновывает своё утверждение, причём довольно убедительно.
>> No.45761 Ответ
>>45760
Перескажи его аргументы, а то мне лень смотреть на очередного фрика. С какой стати кодовая чмонька с профессией уровня советских токарей называет науку как средство познания мира углом компуктер сцайенса?
>> No.45762 Ответ
>>45761
> > Один из создателей Standard ML
> > http://www.cs.cmu.edu/~rwh/
> кодовая чмонька с профессией уровня советских токарей
> очередного фрика
> Перескажи его аргументы

Ты либо очень жирный тролль, либо просто дурак. Ни на дураков, ни на троллей тратить время мне неинтерсно.

> мне лень смотреть
Не можешь в английский - так и скажи. Там всё видео меньше 10 минут. Можно даже ускоренный просмотр включить.
>> No.45763 Ответ
>>45762
Понятно, очередной пиздабол. Снова убеждаюсь в том, что высеры скудоумных айти-даунов - нечто вроде религии. Вот тут мы тебя наебем, вот тут тоже и еще вот тут, а ты жри, жри говно и не смей сомневаться в нашем авторитете, а еще не забудь профинансировать нашу пиздаболию.

> http://www.cs.cmu.edu/~rwh/
Теория типов - наиболее омерзительное, скучное приложение алгебры и топологии (говно). Для ограниченных, скудоумных аутистов с органическим поражением мозга, которые не могут охватить всю ширину и красоту математики и замыкаются в ее какой-то узкой и безблагодатной области. Когда математики выдвигают гипотезы о том, какой структурой можно описать вселенную, ограниченная тварь, жопоногая падла компуктер сцайентист придумывает очередное говно без задач.
>> No.45764 Ответ
>>45762
Какой реакции ты ждал? "Математика - это просто уголок CS" и "ООП - это мамбо-джамбо, мне не интересно" - это не "прикольный дядька", а абсолютно скудный уровень рассуждений. Ты просто сам нарываешься со своими эпатажными речёвками.
>> No.45765 Ответ
>>45764
> Какой реакции ты ждал?

Ну ругательств типа
> очередной пиздабол, ограниченная тварь, жопоногая падла
в адрес заслуженного учёного я конечно не ждал. Но это, видимо, потому, что я думал, что тут взрослые люди сидят.

> Ты просто сам нарываешься со своими эпатажными речёвками.
Меня не очень пугают ругающиеся в интернете плохими словами школьники. Или взрослые с уровнем развития пятиклассника.

> "Математика - это просто уголок CS" и "ООП - это мамбо-джамбо, мне не интересно" - это не "прикольный дядька", а абсолютно скудный уровень рассуждений.

Ты тоже в английский не можешь? Тогда воздержись от оценок уровня его рассуждений, чтобы не выглядеть глупо. Да, я выбрал провокационные реплики, чтобы заинтересовать анона, но тот, кто посмотрел ролик, не скажет, что у Харпера - скудный уровень рассуждений.

Also, странно, что человек интересующийся Хаскелем встаёт на сторону человека, для которого теория типов - это "высеры скудоумных айти-даунов".
>> No.45766 Ответ
>>45765
> Меня не очень пугают ругающиеся в интернете плохими словами школьники. Или взрослые с уровнем развития пятиклассника.
Они тебя не должны были пугать, я рассчитывал, что ты задумаешься о влиянии эпатажа и громких словечек на реакции людей, которые могу не быть арессивными, но остаются отрицательными.
> Да, я выбрал провокационные реплики, чтобы заинтересовать анона
Вот ты и заинтересовал, так что анон встал в оборонительную позу и начал ругаться плохими словами.
>> No.45767 Ответ
>>45760
Дай-ка угадаю: он, подобно другим логикам, не различает логику и математику? Когда же математики высказывают вещи вроде:
> Псилософия — глубокомысленная болтовня с претензией на знание; поверхностное формальное философствование, состоящее в хаотическом повторении плохо переваренных банальностей. В последнее время широкие народные массы интерпретируют термин псилософия как сокращение выражения психоделическая философия. Все написанное о математике нематематиками, включая Рассела и Виттгенштейна, представляет собой типичную псилософию — в любом из указанных смыслов.
>> No.45773 Ответ
>>45765
> я выбрал провокационные реплики
Илитный тролль опять выходит на связь, чтобы рассказать как его обижают в интернетах. За столько лет на доброчане мог бы уже и научится нормально общаться вместо того, чтоб срач разводить каждый раз.
>> No.45775 Ответ
В треде воняет хаброблядями, или мне показалось?
>> No.45776 Ответ
Лол, императивный дебилоид решил блеснуть знаниями.
Все твои последовательные тумба-юмба инструкции "Взять копьё; Убить мамонта; Съесть мясо" - это как раз противоестественная хуита для специально выведенных компьютерных опущенцов байтоёбов, мыслящих как машина. Заметь, ни в математике, ни в физике такой примитивной хуйни нет, потому что человек мыслит абстрактно, и только червь-байтоёб мыслит командами.

И в мышлении нормального человека не будет никаких низкоуровневых "создать", "удалить", "пока", "старая версия", "сборщик мусора". И кстати, персистентные структуры как раз естественны, ведь прибавив к 1 ещё 1, ты не уничтожаешь единицу, она по прежнему продолжает существовать. Это только в мире процедурных опущей с их i++ колдунствами, переменная это не переменная в нормальном смысле, а специальная коробочка куда что-то можно положить, потом забрать, потом положить что-то ещё. И не будет всего этого убогого перекладывания кирпичиков, а будет просто контейнерный тип, одна свертка и отображение. Потому что это обобщенные понятия, которые работают везде, не важно что нужно делать, постирать бельё, собрать результаты двух парсеров, или посчитать сумму двух сигналов. Этому учат с самого детства на уроках алгебры. Поиск закономерностей это и есть важнейшая часть человеческого обучения. И только отмороженный инженегр-аутист, ничему не учится, так и продолжая перекладывать какашки с места на место своими инструкциями.
>> No.45778 Ответ
>>45773
> Илитный тролль опять выходит на связь, чтобы рассказать как его обижают в интернетах.
Ты наркоман штоле сука.жпг
Где я рассказывал как меня обижают?

> За столько лет на доброчане мог бы уже и научится нормально общаться

Нормально общаться это
> очередной пиздабол, ограниченная тварь, жопоногая падла ?

Нет уж, спасибо. Мне такое нормальное общение неинтересно. Раньше вроде в этом треде были люди, программирующие на всякой функциональщине чувак, прыгающий с парашютом ведь на доброчане был?, а теперь одни сплошные нормальные б^H люди.
>> No.45780 Ответ
>>45776
Остынь.
>> No.45781 Ответ
>>45775
У меня впечатление, что в треде одни неадеквтные мимокрокодилы из джава-треда ничего не имею против джавы и нормальных джава-программистов, которые увидели "ооп - мамбо, джамбо" и пришли побугуртить извините мой французкий и рассказать о том, что "Когда математики выдвигают гипотезы о том, какой структурой можно описать вселенную, ограниченная тварь, жопоногая падла компуктер сцайентист придумывает очередное говно без задач.", как будто они сами имею хоть какое-то отношение к математике.
>> No.45782 Ответ
>>45779
> Мы и сейчас здесь есть
Я что-то не вижу в треде никаких обсуждений продвинутых тем, а только самых азов Хаскеля и "море пафоса, ЧСВ, призывов к адекватности и какой-то ебаной пустоты." Так что тред всё-таки не случайно называется "Бывший когда-то традиционным"
>> No.45784 Ответ
Я уже третий вопрос задаю по State по всего одному отрывку текста:
getAny :: (Random a) => State StdGen a
getAny = do g <- get
(x,g') <- return $ random g
put g'
return x
Что здесь делает put g'? Вроде return x же должно пересоздать функцию runState заново и g' там уже не будет. Тогда что оно делает.
И вообще, почему нельзя было написать так:
getAny = State { runState :: (g -> (random g, g)) }
>> No.45792 Ответ
>>45784
Разобрался. Точнее, на SO ответили. Я думал ретёрн в ду-нотации просто срабатывает отдельно, а он биндом накладывается на предыдущий. Если б ещё они в учебниках эту ду-нотацию расписывали бы более по-человечески.
>> No.45876 Ответ
Кто-нибудь перекатывался на OCaml, диалект ML если грубо. Что думаете в сравнении с хаскеллем? Хаскель использовать не хочу из-за ленивой инициализации, непонимания тайпклассов - по мне нормальная модульность must have для языка - и опасений по поводу concurrency/parallelism. Говорят, в окамле все хорошо с этим. Зависимые типы и прочие hottы мне в алгоритмах не особо нужны.
>> No.45879 Ответ
>>45876
Кстати. Я не брал пока других ФЯ, пробую пока Хаскель. ФП и ООП часто противопоставляют, но разве в Хаскеле по сути не тоже самое ООП, что и джаве, только на стероидах и с ФП. Они используют типы и тайпклассы, но по сути это же всё те же классы и интерфесы.
>> No.45880 Ответ
>>45876
Модульность со времён Modula-2 во всех языках, где она есть, примерно одинакова. Хаскелл и окамл не исключение.
Или ты что-то другое имел в ввиду?
>> No.45936 Ответ
>>45749
> https://youtu.be/RcTaweZMEzo?t=125

Но ведь математика не про вычисления, а про алгебраические структуры, их свойства и морфизмы между ними, про дискретность или непрерывность, про теоремы о существовании решения. Если бы не теоремы существования из топологии, долбоебы до сих пор вычисляли бы решение о квадратуре круга. Аффтар неуч.
>> No.45937 Ответ
>>45936
> решение о квадратуре круга
Решение задачи. Наверно, кластер суперкомпьютеров запустили бы и вычисляли до бесконечности.
>> No.45976 Ответ
>>45936
Ой да не ешь ты этого клоуна.
>> No.46133 Ответ
Файл: tumblr_n2ke4tzKR51shbc9ho1_500.gif
Gif, 1010.16 KB, 500×281 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
tumblr_n2ke4tzKR51shbc9ho1_500.gif
>>45880
> Модульность со времён Modula-2 во всех языках, где она есть, примерно одинакова. Хаскелл и окамл не исключение.

НЕ МОГУ. ПЕРЕСТАТЬ. ХОХОТАТЬ.
>> No.46875 Ответ
Файл: 2bcbe14ae2efadfc9...
Png, 33.29 KB, 417×326
edit Find source with google Find source with iqdb
2bcbe14ae2efadfc95267413a710ec4c1480097777262.png
Файл: 3a50cdabf2ff37212...
Png, 25.21 KB, 409×212
edit Find source with google Find source with iqdb
3a50cdabf2ff3721282443bfd82989111480097777263.png

SPJ со своим другом наконец-то разработали недостающую теорию,
открывающую мир нешаблонного параметрического полиморфизма байтоёбским типам со стека:
https://www.microsoft.com/en-us/research/wp-content/uploads/2016/11/levity-1.pdf
>> No.47994 Ответ
>>46875
> 25 November 2016
Ж - живой язык
>> No.47995 Ответ
>>37765
Не знаю как там в 2014, но у нас есть https://ru.wikipedia.org/wiki/Yi_(редактор) и пожалуй ещё https://ru.wikipedia.org/wiki/Leksah
>> No.47998 Ответ
Файл: 1496672176680-g.png
Png, 785.77 KB, 1000×1300 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1496672176680-g.png
>>47995
Но все равно, лучше использовать Emacs.
>> No.48030 Ответ
>>47998
> Основные режимы эмуляции для Yi это vim и emacs.
А вообще какой режим лучше, вообще vim VS emacs что победит?


Пароль:

[ /b/ /u/ /rf/ /dt/ /vg/ /r/ /cr/ /lor/ /mu/ /oe/ /s/ /w/ /hr/ ] [ /a/ /ma/ /sw/ /hau/ /azu/ ] [ /tv/ /cp/ /gf/ /bo/ /di/ /vn/ /ve/ /wh/ /fur/ /to/ /bg/ /wn/ /slow/ /mad/ ] [ /d/ /news/ ] [ Главная | Настройки | Закладки | Плеер ]