
Алекс
06.05.2017
15:57:22

Pig
06.05.2017
15:57:57
fixed

Evgeniy
06.05.2017
15:59:11
@greenest_pig Так ты спрашивай конкретный вопрос, может кто ответит.

Pig
06.05.2017
16:00:32
Конкретные вопросы у меня другие, просто интересно как акка.нет с фшарпом работает.

Google

Pig
06.05.2017
16:09:07
Конкретный вопрос: как проще всего натянуть консольльное приложение на windows-сервис?

Roman
06.05.2017
16:34:24
для F# есть https://github.com/haf/Topshelf.FSharp но я не пробовал

Dmitry
06.05.2017
16:43:18
не про F#, а C# но тут вроде умные все, знать должны - есть переменная типа object, есть её какой-то конкретный тип полученый через GetType(). Можно ли без условных операторов с проверками закастить object в конкретный тип?

Roman
06.05.2017
16:43:53

Dmitry
06.05.2017
16:44:26
нет к сожалению

Roman
06.05.2017
16:44:40
без условных опреторов н ос проверкой? Это без if? а ?: можно?

Dmitry
06.05.2017
16:45:17
так ?: те же яйца только в профиль

Roman
06.05.2017
16:45:29
да, но на всякий случыай уточнил)

Dmitry
06.05.2017
16:46:01
блин, почему переменную типа Type нельзя использовать как тип?

Combot
06.05.2017
16:46:31
combot.org/chat/-1001116883766

Google

Roman
06.05.2017
16:48:39
блин, он object возвращает.

Dmitry
06.05.2017
16:50:45
Это у меня боль от того, что есть 2 Dict<string, object> и их надо сравнить по значениям - а object{int} 6 != object{int} 6 потому что сравниваются ссылки упакованых значений.

Klei
06.05.2017
16:52:21

Dmitry
06.05.2017
16:53:15
private static bool AreRowsEqual(Dictionary<string, object> fst, Dictionary<string, object> snd)
{
if (fst.Count == snd.Count)
{
foreach (var item in fst)
{
if (!snd.ContainsKey(item.Key))
{
return false;
}
var sndVal = snd[item.Key];
var fstVal = item.Value;
if (fstVal != sndVal) // НЕ СРАВНИВАЕТ НОРМАЛЬНО
{
return false;
}
}
return true;
}
return false;
}

Roman
06.05.2017
16:55:27
хм.

Pig
06.05.2017
16:56:17

Roman
06.05.2017
16:57:43

Dmitry
06.05.2017
17:00:04

Klei
06.05.2017
17:00:41

Dmitry
06.05.2017
17:04:42
Dictionary<string, object> d1 = new Dictionary<string, object?) { { "a", 1 }, { "b", "string" } };
Dictionary<string, object> d2 = new Dictionary<string, object?) { { "a", 1 }, { "b", "string" } };
var b = AreRowsEqual(d1, d2);
даёт False
Ой так оно верно работает, я "не" забыл в сравнении
Всем спасибо!

Roman
06.05.2017
17:06:17
https://ideone.com/s2IJb4
а, поздно)

Dmitry
06.05.2017
17:06:25
Переносы рабочих дней - зло

Roman
06.05.2017
17:07:34
Dictionary<string, object> d1 = new Dictionary<string, object?) { { "a", 1 }, { "b", "string" } };
Dictionary<string, object> d2 = new Dictionary<string, object?) { { "a", 1 }, { "b", "string" } };
var b = AreRowsEqual(d1, d2);
чтоб не было смайлов в коде нужно использовать `-кавычки для одной строки и три таких кавычки для многострочного текста

Klei
06.05.2017
17:17:15

Evgeniy
06.05.2017
17:58:49
Vasily Привет!

Google

Vasily
06.05.2017
17:59:30
привет :)
смотрю, сравниваем дикшенари на сишарпе :)

Nikolay
06.05.2017
18:00:52

Vasily
06.05.2017
18:01:09
москва есть?

Nikolay
06.05.2017
18:01:16
Нафлудили вы тут)

Evgeniy
06.05.2017
18:08:55
@neftedollar Тут москвичей спрашивают. :)

Vasily
06.05.2017
18:09:26
да нет, это я так
чтоб разговор поддержать

Nikolay
06.05.2017
18:22:42
Нас тут из регионов достаточно)
Надо встретиться фшарпистами, пива попить ?

Vasily
06.05.2017
18:23:23
а толку то

Летучая
06.05.2017
18:23:37

Vasily
06.05.2017
18:24:14
что я наблюдаю - народ не любит F#. Активно так не любит.

Летучая
06.05.2017
18:24:21
кто не любит
я люблю
с++ не люблю
а F# оч даже

Vasily
06.05.2017
18:24:32
пропагандировать отпадает всякое желание

Nikolay
06.05.2017
18:24:33

Google

Nikolay
06.05.2017
18:24:38

Vasily
06.05.2017
18:25:05
99% программеров и тестеров вокруг меня на работе

Nikolay
06.05.2017
18:25:28

Admin
ERROR: S client not available

Nikolay
06.05.2017
18:25:36
И причём тут тестеры?

Vasily
06.05.2017
18:26:10
С#. Тестеры притом, что они пишут тесты.

Nikolay
06.05.2017
18:27:06
Это такое дело
Они пробовали хоть писать на нём?
Язык всё равно не простой, и императивным людям не понятен сразу, поэтому может и не зашло

Летучая
06.05.2017
18:28:16
Ой да что там непростого

Nikolay
06.05.2017
18:28:32
Если писать в императивном стиле, фишки не поймёшь

Летучая
06.05.2017
18:28:46
за 2 дня осилил на уровне "пишу что хочу"
его можно хоть как беттер Срешетка использовать

Evgeniy
06.05.2017
18:33:42
Vasily Это довольно грустно слышать, учитывая, что у вас F# в продакшене.

Alexey
06.05.2017
20:02:45
В у меня наоборот получилось продать f# коллегам и начальству, путем семинаров и презентаций

Roman
06.05.2017
20:20:22

Google

Roman
06.05.2017
20:20:38
Есть возможность рассказать об этом побольше?

Alexey
06.05.2017
20:21:29
Чуть позже

Vasily
06.05.2017
20:32:57
История моих взаимоотношений с Касперским полна таинственного молчания эйчаров...
Не обращайте внимания, это все греческие вина


Alexey
06.05.2017
21:28:03
Ну вообщем, по пути от одного питерского бара к другому могу написать про опыт.
Чтобы иметь удобные концепции под рукой и для слома ментального барьера колег, сделал t4 генератор record'ов и discriminated union'ов + pattern matching по ним
За основу взял синтаксис f#, с сопутствующей генерацией structure equality
Что позволило компактно описывать domain
В рабкать c# проекта
Все восприняли новые возможности положительно
Сделал либу и объяснил концепцию Option, Either в рамках того же c#
Каждый раз аппелируя к тому, что в f# это уже есть
Причем , опеределив option как struct , позволило избавиться от явного использования null'ов во всем проекте
+ добавив соответствующие extention method'ы стало можно строитьбезопасные вычисления над option'ами в рамках sql linq синтаксиса
В презентациях очень много использовал адаптированные слайды Scott Walshin'а
Привый код на f# в проекте появился благодаря продвижения type provider'ov SqlClient