@Fsharp_chat

Страница 319 из 772
Vasily
20.09.2017
13:17:33
Или глобально все поломалось?

Хотя кейс интересный

С резолвом типа операции

Vagif
20.09.2017
13:18:10
Все поломалось глобально. Все инты требует поменять на ActorPath.

Google
Vagif
20.09.2017
13:19:03
Я написал Бартошу (автору), он согласился, что надо бы откатить назад это определение, но пока он выпустит новый релиз, я хочу поставить заглушку, но не получается.

Vasily
20.09.2017
13:19:21
Вообще, выглядит как наркомания

Vagif
20.09.2017
13:21:25
Намерения были благие :-)

Vagif
20.09.2017
13:30:53
Спасибо, попробую

Vasily
20.09.2017
13:31:28
Намерения были благие :-)
Не надо так делать

Evgeniy
20.09.2017
13:33:11
Не надо так делать
Не желательно, конечно. Но вот в FSharp.Core так делают для работы с Unchecked.

В любом другом коде это не нужно, конечно. :)

Vasily
20.09.2017
13:33:50
Там получается, что вывод типов при первом вызове ломается, как я понял

Evgeniy
20.09.2017
13:34:14
Так с inline нигде ничего не ломается.

Vasily
20.09.2017
13:34:39
Тогда непонятно поведение компилятора у Вагифа

Google
Evgeniy
20.09.2017
13:34:55
Тогда непонятно поведение компилятора у Вагифа
Там глобальный оператор переопределили.

Vagif
20.09.2017
13:34:58
@gsomix Да, open Operators восстановило деление. Теперь все компилируется

Evgeniy
20.09.2017
13:35:09
Vagif
20.09.2017
13:35:14
Да, это был глобальный оператор.

Vasily
20.09.2017
13:35:23
Красавцы

Я ж грю, наркоманы

Evgeniy
20.09.2017
13:35:47
Предложение что ли кинуть, чтобы запретить так делать?

Или хотя бы ворнинг.

Vasily
20.09.2017
13:36:10
По идее нужен запрет на переопределение на уровне компилятора

Vagif
20.09.2017
13:36:34
Ну вообще с учетом потенциальной опасности хотя бы warning не помешал бы.

Vasily
20.09.2017
13:36:47
Кто на эти варнинги смотрит

Vagif
20.09.2017
13:37:22
У нас ворнинг как ошибка во всем проекте.

Vasily
20.09.2017
13:37:30
Njulf gjvj;tn

Тогда поможет

У разработчиков акклинга может быть не так

Evgeniy
20.09.2017
15:09:22
Посмотрите, о чем твитнул(а) @tomaspetricek: https://twitter.com/tomaspetricek/status/910516469380866049?s=09

Довольно интересная статья про обучение F#.

Pawel
20.09.2017
19:53:35
https://ravendb.net/docs/article-page/3.5/http/indexes/indexing-hierarchical-data
Вполне допускаю что на этом можно строить сложные надёжные масшатбируемые системы, но для быстрого старта и исследований в области data mining оно вообще ни как не алё. В моём представлении в NoSQL сервере всё должно быть тупо и примитвно, как в CouchDB., а здесь всё очень сложно. Magic everywhere. Очень много опций реализовано через интроспекцию. Постгресс на много менее хардкорный - его функции проще , и от него знаешь что ждать. Надо будет ещё посмотреть это на предмет сравнения с OrientDB, но на первый взгляд Orient тоже на много проще. Как говорится, спсибо автору за ознакомление.

Astmatik
20.09.2017
19:54:58
Не собираюсь быть адвокатом RavenDB, но мне кажется, что это вопрос дизайна схемы данных, а не "фич" БД.

Google
Astmatik
20.09.2017
19:56:46
Документооринтированные БД сами по себе тупые как пробки. Что положил, то и лежит. Зависимости и отношения изобретай сам.

Pawel
20.09.2017
20:02:30
Документооринтированные БД сами по себе тупые как пробки. Что положил, то и лежит. Зависимости и отношения изобретай сам.
да, вот такое и нужно. Конкурентный view с обходом документов и пар ключ-значение - самая важная "фича" . Но raven как я понял хранит схемы документов и может хранить отношения, то есть пытается быть графовой. Плюс всё это прописывается в функциях на сервере на каком-то непонятном языке

Astmatik
20.09.2017
20:08:02
А что нужно? Графы?

Pawel
20.09.2017
20:13:44
А что нужно? Графы?
не обязательно, отношения между документами можно самому написать. Нужны нетипизированные деревья в основном, и чтобы при их обходе никакой рефлексии не вызывалось, иначе комп дохнет

если бы были принципиально нужны графы, я бы взял OrientDB, она очень гут

Astmatik
20.09.2017
20:15:20
Про монгу почему-то подумалось..

И на ноде сразу захуячить

Roman
20.09.2017
20:17:00
Pawel
20.09.2017
20:20:10
Про монгу почему-то подумалось..
моонга отстой, самое днище практически. Хранит всё в жсон, что идиотизм. На 100 гигов информации в ней будет на 2 порядка меньше, чем у меня в boltdb в двоичном виде. И транзакций у неё нет, то есть на любой update есть не нулевая вероятность, что все данные пропадут на хрен

Astmatik
20.09.2017
20:20:59
Транзакции прикрутили, емнип

Pawel
20.09.2017
20:21:25
Транзакции прикрутили, емнип
только в пределах одного документа.

Fable!!! :D
ты о чём?))

Летучая
20.09.2017
21:48:43
Как из F# C#-у сунуть IReadonlyDictionary?

Тип IDictionary несовместим с типом IReadOnlyDictionary (WTF???)

dict[] |> Dictionary<string, string> — а вот так запихивается в IReadOnlyDictionary. Почему Dictionary можно скастить в ридонли, а IDictionary нельзя? Это фича или баг (куда репортить?)?

Roman
20.09.2017
22:18:10
Вернее, IReadOnlyDictionary. Ну и Collection тоже имплементит, офк :)

Friedrich
21.09.2017
04:57:36
Тип IDictionary несовместим с типом IReadOnlyDictionary (WTF???)
IList и IReadonlyList тоже в таких же хитрых отношениях, кстати.

Google
Pavel
21.09.2017
08:54:41
у меня, возможно, странный вопрос: можно ли определить функцию, которая возвращала бы себя же? пример: let rec foo input = foo

использоваться это будет примерно следующим образом: let rec foo state inputMsg = (*apply somehow input to state*) foo newState

Pavel
21.09.2017
08:57:45
вот да, она бесконечна =\

Evgeniy
21.09.2017
09:00:59
Здесь конечная сигнатура.
Предъявите сигнатуру.

Pavel
21.09.2017
09:02:10
ну тип это вообще не скомпилируется, поэтому сигнатуру предъявить не очень получится, не? :)

у того, что хотел я, как мне кажется, должна быть бесконечная сигнатура, т.к. результат функции — функция с таким же результатом

надеялся, что есть какой-то трик, который я не знаю

Friedrich
21.09.2017
09:04:10
Evgeniy
21.09.2017
09:04:50
obj :3
Ой, всё!

Friedrich
21.09.2017
09:04:59
у того, что хотел я, как мне кажется, должна быть бесконечная сигнатура, т.к. результат функции — функция с таким же результатом
Кажется, что-то такое делает Y-комбинатор. Посмотри, с помощью каких трюков его обычно реализуют.

Хотя, честно признаться, я с трудом себе представляю, как ты этот код собираешься потом использовать.

Pavel
21.09.2017
09:06:09
мысль была в том, чтобы делать стейт-машины на этом

есть несколько функций с одинаковой сигнатурой: принимают стейт и сообщение

возвращают очередную функцию с такой же сигнатурой

Evgeniy
21.09.2017
09:07:05
Хотел стейт инкапсулировать?

Vasily
21.09.2017
09:07:25
Это же Free Monad

В чистом виде

Pavel
21.09.2017
09:07:40
ну не обязательно, можно же возвращать кортеж из очередной функции - обработчика и стейта

Google
Vasily
21.09.2017
09:08:25
Ну все равно фримонадка в чистом виде

И дерево можно нормально построить

У Симана недавно статья на эту тему была

Pavel
21.09.2017
09:09:03
честно говоря, я ламер и ближайшие минут десять буду тупить

а можно ссылку на статью?

Evgeniy
21.09.2017
09:09:24
ну не обязательно, можно же возвращать кортеж из очередной функции - обработчика и стейта
Не совсем понятно, зачем такие сложности, когда можно сделать просто: update : Msg -> State -> State

Aleksey
21.09.2017
09:09:44
Ну да foo : a -> (a -> a)

Vasily
21.09.2017
09:10:02
http://blog.ploeh.dk/2017/07/31/combining-free-monads-in-f/

Pavel
21.09.2017
09:10:03
Не совсем понятно, зачем такие сложности, когда можно сделать просто: update : Msg -> State -> State
потому что такая функция не возвращает очередного обработчика

Vasily
21.09.2017
09:10:19
Ну и далее и ранее по тексту

Pavel
21.09.2017
09:10:26
тип каждый шаг обработчик может быть другим

Aleksey
21.09.2017
09:10:39
"очередного обработчика", это континьюэйшн?

Vasily
21.09.2017
09:11:07
Ну фри монадка жеж

Aleksey
21.09.2017
09:11:16
data Next a = End a | Cont (a -> Next a)

Vasily
21.09.2017
09:11:22
Ага

Pavel
21.09.2017
09:11:45
судя по сигнатуре очень похоже на то, что хочу

но нифига не поинмаю :D

Aleksey
21.09.2017
09:13:09
Это тип-сумма, который имеет два варианта - Конец - возвращаем a - Продолжаем - возвращаем функцию-продолжение

Страница 319 из 772