Отдал бы и ползарплаты! Войти !bnw Сегодня Клубы
Привет, TbI — HRWKA! 1244.0 пользователей не могут ошибаться!
?6960
прекрасное6449
говно5914
говнорашка5512
хуита4731
anime3072
linux2659
music2639
bnw2607
рашка2577
log2367
ололо2220
дунч1864
pic1816
сталирасты1493
украина1439
быдло1438
bnw_ppl1431
дыбр1238
гімно1158

ADTs in Typed Racket with macros

Немного изящного (макроебства)[http://lexi-lambda.github.io/blog/2015/12/21/adts-in-typed-racket-with-macros/] и в тайпед/ракетке можно юзать ADT с паттерн матчингом.
(Прямо как во взрослых крутых языках).

(define-datatype Expr
  (Value Number)
  (Add Expr Expr)
  (Subtract Expr Expr)
  (Multiply Expr Expr)
  (Divide Expr Expr))

(: evaluate (Expr -> Number))
(define (evaluate e)
  (match e
    [(Value x)      x                            ]
    [(Add a b)      (+ (evaluate a) (evaluate b))]
    [(Subtract a b) (- (evaluate a) (evaluate b))]
    [(Multiply a b) (* (evaluate a) (evaluate b))]
    [(Divide a b)   (/ (evaluate a) (evaluate b))]))

> (evaluate (Add (Value 1)

                 (Multiply (Divide (Value 1) (Value 2))
                           (Value 7))))
4 1/2

Интересно, ебанется ли кто-нить достаточно чтобы набыдлить какой-нить аналог хаскеля или scalaz?

#R60TPL (14) / @ninesigns / 3446 дней назад
Пересобираю блог на hakyll'е перед переписыванием, чтобы убедиться что со времени последних изменений api не изменилось фатально. Заодно пересобираю и весь сандбокс проекта. Ох и до фига же там всего, ну да и ладно. Вдруг взгляд мой заметил что-то необычное. Что-то пошло не так? Матрица меняет программу? Нет, это enumerator-0.4.20. Его не обновляли с 2013го года и не будут собственно уже никогда. При этом лог сборки разумеется забит всякими conduit'ами, которые строго говоря решают те же задачи что и enumerator. Стал смотреть кто же такой некрофил-виртуоз. Оказалось snap. При этом сам hakyll, который использует snap только как тестовый вебсервер (непонятно зачем нужный статическому сайту) разумеется на попсовых conduit'ах. Hackage, ты редкостная помойка. Пользуясь случаем выражаю респект JohnMillikin, который в 2013ом году написал код, который пережил все изменения в стандартной библиотеке.
#6CHFJ7 (0) / @ndtimofeev / 3447 дней назад
Обратите внимание, как то, что в Haskell решается с помощью монад, в <languagename> достигается при помощи прилежания и усидчивости.
#GT72S2 (1) / @l29ah / 3452 дня назад
Почему вдруг всем стала нужна эта параша? У большинства хаскелистов в системе пакетного менеджера адекватного нету?
#BP0CCQ (17) / @l29ah / 3453 дня назад
Какой компилятор/версию ставить на n900? (ARM Cortex A8, 256MB DRAM, Linux)
#7EYC4Y (4) / @l29ah / 3453 дня назад
>Write Emacs extensions in Haskell https://github.com/knupfer/haskell-emacs . кто-нибудь может обьяснить что за херня этот liquid-haskell?
#17WXNJ (5) / @anonymous / 3455 дней назад
весь вечер пытаюсь собрать иксмондад без кабала похоже что это невозможно такое
#R3CBZB (7) / @anonymous / 3461 день назад
Охуенно выразительно и красиво. Спасибо статической типизации. data LinkedList a = EmptyLinkedList | LinkedList (LinkedList a) (LinkedList a) a
#4WNX3D (18) / @l29ah / 3461 день назад
>>> Emerging (1 of 102) dev-lang/ghc-7.8.4::gentoo Ну девочка, ну еб твою мать
#KG45KI (11) / @mad_hatter / 3472 дня назад
http://habrahabr.ru/post/271213/ — я пропустил анонсы в более приличных местах или организаторы просто хотят чтобы я с @L29Ah'ом не приходили?
#HKOGUL (1) / @ndtimofeev / 3480 дней назад

the Strict language extension*

Add a new language extension -XStrict which turns all bindings strict
as if the programmer had written a ! before it. This also upgrades
ordinary Haskell to allow recursive and polymorphic strict bindings.

https://github.com/ghc/ghc/commit/46a03fbec6a02761db079d1746532565f34c340f

Все теперь можно думать о том, чтобы учить хаскель. // Ну или Ocaml

Кстати, спалите haskell vs ocaml в вопросах:
* C-FFI
* многопоточности
* ease of deployment
* поддержки ARM
* легкости получения soft realtime

Олсо, кто-нить объекты в Ocaml юзает или это шутка?
Наткнулся на такой комент на HN:
/However, with a few minor tweaks (e.g. an option type), I would rather have the C# type inference than the OCaml one. The reason is that, if I want to do something very clever, I will not find myself limited to code that I can actually prove to the OCaml compiler as correct: I have, time and time again, resorted to reflection and code generation to work around such situations. In other words C#'s Obj.magic is a lot more powerful (and safe, and expressive) than OCaml's.

A fairly good example is Eliom's way of expressing the parameters of a service. In C# you would write in a PageController class

public Details Update(PageId id, UserId user, [PostBody] Details body) 

and have your web framework automatically bind this to POST /page/update/{id}?user={user} with the appropriate serialization for PageId and UserId. And writing such a framework is easy: a couple hundred lines of code, with run-time type safety.

In OCaml you have to understand the entire Eliom_parameter framework: https://ocsigen.org/eliom/4.2/api/server/Eliom_parameter Just think of the mental firepower needed to create that framework in the first place!/

#QQMYMN (47+2) / @ninesigns / 3482 дня назад
Cross-compiled statically linked musl arm hello world works.
#1P2VX2 (3) / @l29ah / 3491 день назад
Тимофеев научившийся пользоваться комбинатором неподвижной точки чувствует себя как татарин научившийся выговаривать букву Р.
#R9KET8 (0) / @ndtimofeev / 3494 дня назад
Попытался заюзать concurrent-output, чтобы облагородить вывод робота. Мне показалось или там очень странный хаскель? Что-то вроде давайте ехал IO через IO и если он ехал в правильном порядке, то может быть будет хорошо. У меня заправка ракеты головного мозга или там действительно всё как-то очень неявно?
#AVCBB3 (11) / @ndtimofeev / 3495 дней назад
tfw воспользовался type families, а потом узнал что это такое
#SX214R (0) / @l29ah / 3500 дней назад
https://www.linux.org.ru/forum/development/12058192 — довели человека своими AMP, FTP, MFP, MRP.
#YH0KOT (1+1) / @ndtimofeev / 3503 дня назад
#error No implementation for getProcessCPUTime() available. Мне нужно наколдовать какую-то волшебную чародейскую магию чтобы ghc собрался с musl?
#0B7Y4Q (6+1) / @l29ah / 3513 дней назад
http://www.joachim-breitner.de/blog/684-Constructing_a_list_in_a_monad_revisited — в догонку к #2806440. Один пошутил на тему того что можно хакнуть Nil через C-- и получить дешёвую вставку в конец списка. Другой забенчмаркал это и пришёл к выводу что это отличная идея. Теперь полагаю надо ждать Hack Hole Proposal в кафе. Не зря меня так напугал исходный пост.
#MAB2ZJ (2) / @ndtimofeev / 3515 дней назад
http://twanvl.nl/blog/haskell/unsafe-sequence — Здесь неподалёку есть старое индейское кладбище. Если похоронить там кого-нибудь то он оживает. Но вы пожалуй лучше не делайте этого никогда.
#841A3V (0) / @ndtimofeev / 3516 дней назад
--
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.