
Evgeniy
25.04.2017
08:01:26
Адово.
@the_RAMZAY Давай я тебе куплю книгу по матлогике, а? :)

Anton
25.04.2017
08:02:46
Этот пацанчик на заре 2000х преподавал в моём универе и препадша по логике/философии мне принесла эту книженцию, так как их было всего 3000 шт.
@gsomix не, пасибо =) у меня уже книг по логике, теории множеств, типов и категорий хватает. Осталось это всё осилить.

Google

Nikolay
25.04.2017
09:46:27
Такой вопрос немного нубский:
let a = Process.Start("blabla.exe")
В данном коде, при передаче 'a' как аргумента в C# функцию, каждый раз будет новый процесс создаваться?
let aWrapper1 = SomeProcessWrapper(a);
let aWrapper2 = SomeProcessWrapper(a);

Evgeniy
25.04.2017
09:47:45
Нет, не будет.

Nikolay
25.04.2017
09:47:49
Или это эквивалентно будет следующему коду:
var a = Process.Start("blabla.exe");
var aWrapper = new SomeProcessWrapper(a);
var bWrapper = new SomeProcessWrapper(a);

Evgeniy
25.04.2017
10:04:15
@easemashko Привет!

Евгений
25.04.2017
10:58:20
Привет

Friedrich
25.04.2017
13:09:36

Anton
25.04.2017
13:45:03
Понятненько

Vasily
25.04.2017
14:00:10
Кстати, кто-нить с fsi.exe игрался?

Nikolay
25.04.2017
14:00:35
Постоянно использую

Google

Vasily
25.04.2017
14:00:45
Я про пребилд эвенты

Nikolay
25.04.2017
14:01:02
Немного не понял

Vasily
25.04.2017
14:01:30
Ну я хочу в пребилд эвенте из папки проекта запустить свой скрипт, который генерит один из исходников в проекте

Nikolay
25.04.2017
14:01:48
Через fsi?

Vasily
25.04.2017
14:01:51
Угу

Nikolay
25.04.2017
14:02:01
Может лучше fsx?

Vasily
25.04.2017
14:02:05
Чет он мне ошибку 9009 выдает

Nikolay
25.04.2017
14:02:07
Использовать

Vasily
25.04.2017
14:02:18
Ну fsx файл, да

Nikolay
25.04.2017
14:02:45
Ааа, ну хз тогда
Читал как раз сегодня в книжке про это

Vasily
25.04.2017
14:05:03
А, нашел, в чем дело
Так, парни
Я-таки запилил скрипт
Который наружу тащит sql команды
Из списка файлов
Это ни разу не type provider, но что надо, делает
Можно пушить в гитхаб как ORM %)

Nikolay
25.04.2017
14:09:09
А он будет работать с БД, которые не mssql?)

Vasily
25.04.2017
14:09:56
Ну при условии использования тайп провайдера, использующего то, что надо -да

Google

Vasily
25.04.2017
14:10:08
Это ж тупой кодогенератор
Есму что напишешь, то и будет

Nikolay
25.04.2017
14:10:40
Ну так подожди, оно же у тебя запросы парсит, или как?

Vasily
25.04.2017
14:10:47
Парсит
На предмет параметров
Остальное пусть SqlCommandProvider делает

Nikolay
25.04.2017
14:11:15
Короче, выкладывай на гитхаб, посмотрим)

Vasily
25.04.2017
14:11:20
В целом на данный момент только MSSQL
35 строк
Чо там выкладывать

Igor
25.04.2017
14:12:50

Vasily
25.04.2017
14:13:45
https://gist.github.com/vshapenko/5c6611e157916a0a35a853bc37a854ec

Nikolay
25.04.2017
14:16:17
Опять .Net Framework
Нужен кор)

Vasily
25.04.2017
14:16:41
Я решаю свои специфические задачи
Имхо, можно и под кор переписать

Летучая
25.04.2017
14:16:49
Блин, чо ты переносы строк не ставишь (

Vasily
25.04.2017
14:17:04
Из студии скопировал

Летучая
25.04.2017
14:17:13
У F# кстати нет своих гайдлайнов типа Pep8?

Vasily
25.04.2017
14:17:24
Какие-то есть

Google

Vasily
25.04.2017
14:17:41
Вышеприведенный скрипт - просто proof of concept

Летучая
25.04.2017
14:19:27
Забавно
Методы и свойтсва надо писать PascalCase

Nikolay
25.04.2017
14:19:44
В коре SqlCommandProvider'ов нет же

Летучая
25.04.2017
14:19:56
А про идентейшон ничего не написано, сами в примерах когда как пишут ((

Nikolay
25.04.2017
18:03:19
Есть тип str option, нужно вернуть "" если None, иначе вернуть эту же строку, как это сделать?
Знаю только вариант с match

Evgeniy
25.04.2017
18:09:20
@Dolfik Option.defaultValue

Nikolay
25.04.2017
18:09:55

Admin
ERROR: S client not available

Nikolay
25.04.2017
18:10:02
Функцию применить к ней

Evgeniy
25.04.2017
18:10:57
Это уже не похоже на простую функцию. :)

Nikolay
25.04.2017
18:13:41
Вот такая функция:
let args = param |> Seq.map (fun x -> x.Key + "=" + x.Value.ToString()) |> String.concat "&"
Преобразует IDictionary<string, object> в параметры url запроса
В функцию передаётся:
param: IDictionary<string, obj>
И нужно сделать, чтобы аргумент param был option, и если он None, то в let args возвращалась пустая строка
Надеюсь понятно объяснил)

Klei
25.04.2017
18:16:49

Roman
25.04.2017
18:19:50
Ув. @techiedesu призывают в gitter https://gitter.im/fsharplang_ru/Lobby

techi
25.04.2017
18:20:46

Roman
25.04.2017
18:21:50

Google

Nikolay
25.04.2017
18:23:35

Klei
25.04.2017
18:25:08

Nikolay
25.04.2017
18:25:41

Evgeniy
25.04.2017
18:33:09
Только функцию, которая в map, лучше отдельно вынести.

Pavel
25.04.2017
19:13:12
Я всегда url-билдером пользовался
HttpValueCollection
(чтобы не забыть, что энкодить надо)

Nikolay
25.04.2017
19:22:00
Ещё один глупенький вопрос, у меня есть функция, которая может принимать int либо int64, и конвертить его в строку, чтобы работать одновременно с двумя типами нужно отдельную функцию писать?
let optionArg arg) = arg |> Option.map (fun i -> i |> string) |> Option.defaultValue ""
Такая функция

Artemko
25.04.2017
19:24:23
Рантайм еррор будет
Если дашь туда значение, не кастующееся в строку

Nikolay
25.04.2017
19:25:24
Я знаю
Там всего два типа могут быть
int и int64

Artemko
25.04.2017
19:25:50
Они тоже не кастуются)

Nikolay
25.04.2017
19:26:28
Просто чтобы не копипастить одну и ту же строку

Artemko
25.04.2017
19:26:48
Двойка мне

Nikolay
25.04.2017
19:27:04
"123" |> int тоже кастуется, если что)
Но подожди, |> это же не casting
Casting это :>