Fork me on GitHub
#clojure-russia
<
2016-02-07
>
artemyarulin02:02:39

дак вот тут и интересно - не смотря на 15 лет бэкграунда в МС и F# да, чувак выбрал OCaml

be909:02:34

@artemyarulin: там какой-то чувак в комментах написал, что перевёл код на F# с минимальными изменениями. может быть, F# стремно запускать под маком, например? тащить весь этот моно…

artemyarulin10:02:15

оу, дак окамл так сильно похож на F#? (или наоборот, не понимаю кто у кого украл)

be910:02:01

ну они все из семейства ML растут, как я понимаю

artemyarulin10:02:12

круто, мне F# нравился всем, кроме как производителем (ну и моно всякие да). Если окамл тож самое но без этого говна, то круто

artemyarulin10:02:29

(* Binary tree with leaves car­rying an integer. *)
type tree = Leaf of int | Node of tree * tree

let rec exists_leaf test tree =
  match tree with
  | Leaf v -> test v
  | Node (left, right) ->
      exists_leaf test left
      || exists_leaf test right

let has_even_leaf tree =
  exists_leaf (fun n -> n mod 2 = 0) tree
няшный, прям ах

artemyarulin10:02:58

вот если я и уеду с динамической кложуры то вот тока на такую систему типов

artemyarulin10:02:14

а не на говно на палке

be910:02:29

^^^ на скалке

be910:02:28

OCaml и ООП поддерживает troll

rm10:02:30

Парни, а как называется такой поиск, которому даешь suse, а он понимает, что тебе надо super-search? Так, например, в vim ищет ctrlp

rm10:02:08

вроде нечеткий -- это когда я ошибаться могу

rm10:02:24

а тут просто между каждой буквой может быть еще N букв

be910:02:06

ну сам автор называет его «Fuzzy file, buffer, mru, tag, etc finder. http://kien.github.com/ctrlp.vim»

rm10:02:33

нука пдджы, чота мне приходит в голову "поиск с джокерами". Пойду загуглю

be910:02:44

так что это просто про разную степень нечёткости 🍹

be910:02:35

щас бэтмана нагуглишь

rm10:02:24

угу, какую-то хрень гугл выдает

rm10:02:45

единственная полезная ссылка на первой странице

rm10:02:18

глобы это называется

rm10:02:22

glob, в смысле

rm10:02:32

нет там ничего нечеткого

be910:02:20

значит, ты не достиг точки Баллмера 😄

rm10:02:40

какой точки?

be910:02:16

шутю я

rm10:02:34

похоже, достиг

rm10:02:37

только я трезвею

alwx10:02:42

ребят, а никому не надо помочь с каким-нибудь open source-проектом? хочется для души что-нибудь попилить simple_smile

alwx10:02:21

хотя у меня регулярная работа тоже связана с cljs, так что там тоже для души получается в определенной мере, но хочется больше

artemyarulin10:02:15

допили плиз ом-некст, чтоб хоть в бету его перевести simple_smile

pacman11:02:48

@be9 Насколько я помню из sicp не то что Ocaml ООП умеет.. ФП вообще само по себе ООП умеет.

be911:02:18

это общее утверждение

be911:02:46

а в OCaml есть как минимум синтаксический сахар http://caml.inria.fr/pub/docs/manual-ocaml/objectexamples.html

be911:02:14

приватные методы, например

pacman11:02:38

message passing кажись там называется.. а зачем оно вам нужно, ООП это? simple_smile

be911:02:05

там смайл стоял же, troll

be911:02:19

«пусть будет»

pacman11:02:19

аа, пардон.

artemyarulin11:02:41

а макросы окамл умеет? или не про христиански меТа программирование и строгая система типов?

be911:02:46

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

be911:02:11

ФП больше соответствует глубинной идее социализма: «от каждого по способностям, каждому по потребностям», где распределение ресурса происходит внутри системы исполнения, вместо инкапсуляции используются прозрачные структуры данных, и есть тенденция каждую функцию делать максимально прозрачной, без сайд-эффектов, выполняющей чётко понятную операцию («способность»)

be911:02:39

про макросы не скажу, я не окамлист simple_smile

artemyarulin11:02:46

нельзя с утра начинать пить, хотя бы после обеда надо

be911:02:54

мне даже пить не надо, креатив сам идёт 😄

pacman11:02:31

Лисп семейство языков - так это вообще коммунизм.. от каждого по потребностям и каждому по языку!!!

pacman11:02:50

своему собственному

pacman11:02:29

Так сказать Применение Иммутабельности в народном хозяйстве

pacman11:02:17

Лямбды для трактористов и макросы для агрономов

pacman11:02:50

Расчет кормовой базы за полугодие с помощью функций высших порядков

alwx11:02:00

попробую что-нибудь в React Native поконтрибьютить а то там ужас совсем

be911:02:50

185 открытых PR

be911:02:25

авгиевы конюшни ждут своего геракла simple_smile

virvar13:02:15

всем привет. Есть массив [a b c], хочу вызвать (.foo a b c). Как можно сделать?

virvar13:02:57

т.е (.foo obj a b c)

be913:02:05

apply не помогает?

virvar13:02:25

(apply .foo ...)? вроде не работает

virvar13:02:41

спасибо. Но тут нужно знать, сколько параметров, а в смоем случает их кол-во неизвестно.

be913:02:04

а метод прямо любое количество их принимает?

virvar13:02:17

попробую яваскриптовый apply

virvar15:02:33

сделал через .apply, но он не такой прикольный, как кложурный

be917:02:39

embrace the platform

larhat18:02:59

@artemyarulin: можно писать syntax extensions (по-старому — через camlp4 или по-нормальному — через ppx). про метапрограммирование есть проект от OLEGа — http://okmij.org/ftp/ML/MetaOCaml.html )

artemyarulin18:02:43

@larhat: Как тебе окамл вообще?

larhat18:02:55

мне заебись, препору вот тож понравился

artemyarulin18:02:57

спасибо за ссылку кста, почитаю перед сном

artemyarulin18:02:05

предатель simple_smile

artemyarulin18:02:13

а как же скобочки?!:)

larhat18:02:08

ну там тоже можно скобочки же # (foo 1 2);; - : int = 3

artemyarulin18:02:38

хм, каков там статус компиляции в JS?

artemyarulin18:02:09

и да, первая буква O смущает - это же Object да? harold

larhat18:02:22

js_of_ocaml есть, компилирует. сорс мапы есть, но потухлее, чем в кложескрипте, когда смотрел были. ну и там встроенного типа closure или goog.module нету

artemyarulin18:02:48

т.е. по дефолту хелло ворлд небось 5 метров?

larhat18:02:01

"7к без сжатия" вот чо на неделе @prepor получил, когда пробовал

artemyarulin18:02:28

хм, найс

artemyarulin18:02:37

а че насчет O?

larhat18:02:47

Объективный! %)

larhat18:02:41

в js_of_ocaml используются для интеропа; в целом особо не используют

artemyarulin18:02:41

а как насчет библиотек из других языков? или опять по сто-пятому разу делать HTTP и драйвер для монги?

larhat18:02:35

ну к сишным можно биндинги писать :) к монге было, хттп есть но как бэ не идеальное %)

artemyarulin18:02:34

а если с хаскелем сравнить то как оно вообще?

larhat18:02:56

ну хайпа вокруг хаскеля больше, чо :) я на хаскеле только баловался, какие-то штуки из бумажек прикольно делать — https://github.com/petermarks/hoodlums-sessions/blob/master/church.hs библиотек на вид побольше, но о качестве сходу не скажешь мне окамл больше нравится из-за модулей и подхода "можно даже мутейтить и for-loops если надо, главное интерфейс дай хорошй"

asolovyov18:02:20

и неленивости, чуточку понятнее происходящее

asolovyov18:02:44

но я в окамле на знаках препинания спотыкался, как-то не легло на душу

asolovyov18:02:52

я думал уже, не повозиться ли с f#?

larhat18:02:49

а чо за знаки препинания? %)

larhat18:02:57

а, [1;2] vs [1,2] ? %)

larhat18:02:03

такое?

asolovyov18:02:17

Module.some_func ~f:(забыл тут синтаксис)

asolovyov18:02:21

вот это все

asolovyov18:02:39

на питоне код разреженный, на кложуре регулярный, а тут ни то, ни то

asolovyov18:02:43

короче не успел привыкнуть )

larhat18:02:24

а, ну да, named args добавляют шума

artemyarulin19:02:50

о кста - как окамл решает проблему асинхронности?

larhat19:02:10

асинхронности — евентлупами, спрятанными под "монадическим" интерфейсом (см Lwt, Core.Async)

asolovyov19:02:27

там же кстати активно муссируют тему о параллелизации, уже какие-то демки показывают и всякое, так что может будет скоро относительно

larhat19:02:27

(там ещё эффекты используют)

rm19:02:33

> вокруг хаскеля > хайпа больше бывает же такое

larhat19:02:40

а? ну хаскель весьма популярный язык, на нём может в продакшене не пишут широко, а так-то

niquola19:02:31

На pgconf разговорились с чуваком из heroku, он сказал что если слышит о любви к хаскелу - на работу не берёт ;) есть говорит корреляция неприятная

larhat19:02:01

а если го любит?

turtle19:02:07

Хаскель не для работы потому что. :')

artemyarulin20:02:24

да он не понял монады вот и завидует simple_smile

dottedmag21:02:51

У меня есть один знакомый, который не берёт тех, кто любит лисп (в любом виде).

turtle21:02:22

Меня не возьмёт тогда. simple_smile

rmuslimov22:02:47

Этож почти как дескриминация по расовому признаку > У меня есть один знакомый, который не берёт тех, кто любит лисп (в любом виде).