
Evgeniy
23.05.2017
05:52:54
Давайте иначе. F# не сделает автомагически проект конфеткой, но грамотно построенную систему на нем, наверное, будет тяжелее испортить.

Alexey
23.05.2017
05:55:03
Тот же кто и строил?
Или те на кого это свалилось после ухода строителя

Google

Evgeniy
23.05.2017
05:55:58
Например, те, кто занимается поддержкой, адаптацией под новые задачи.

Ilya
23.05.2017
05:57:23
он там ещё валун на гору затаскивал, метафорически. А джуны сталкивали, метафорически)

Evgeniy
23.05.2017
05:58:20
Я не говорю, что намеренно. Случайно или из лучших побуждений.
Да, болл на хилл.

Friedrich
23.05.2017
05:58:46
И с этим проблема: тот, кто систему строил, лучше всего знает её слабые места, и портит её наиболее эффективно.

Alexey
23.05.2017
06:02:40
Любопытно было провести эксперимент, взять двух джунов , одного обучать f# , другого c# и потом их сравнить

Ilya
23.05.2017
06:06:16

Илья
23.05.2017
06:06:44
На какую оценку по говнокодности по вашему претендует этот код?))) Вроде бы пытался под монады подстроить, но получилось что-то как-то не очень...

Ilya
23.05.2017
06:06:48
нерепрезентативная выборка. Надо хотя бы по 5
а лучше по 10

Илья
23.05.2017
06:07:05

Google

Evgeniy
23.05.2017
06:08:56
@DarkByte2016 Там нет монад.

Илья
23.05.2017
06:09:11

Evgeniy
23.05.2017
06:12:56
Нет, сам по себе option -- это не монада. Просто тип, который может хранить отсутствующее значение.

Илья
23.05.2017
06:13:15

Pawel
23.05.2017
06:13:18
@DarkByte2016 что ты хочешь сделать и к чему этот код?

Илья
23.05.2017
06:13:32
первая функция ищет по регулярке, вторая убирает из url параметры

Ilya
23.05.2017
06:14:12
а стандартные .net классы из c# нельзя использовать в f#?

Pawel
23.05.2017
06:14:14
Формально прав @DarkByte2016 option - монада. Но в данном случае разговор беспердметный пока что

Evgeniy
23.05.2017
06:14:35
@IlyaGusevNaprimer Можно.

Ilya
23.05.2017
06:14:40
это нельзя через статические методы Uri сделать?

Evgeniy
23.05.2017
06:15:07
@ruzzke_mir Нет, не прав.

Pawel
23.05.2017
06:15:43
для поиска по регулярке не нужна никакая функция, ибо она уже есть - Regex.Match

Evgeniy
23.05.2017
06:15:54
Если так говорить, то можно только больше запутать человека.

Илья
23.05.2017
06:17:45

Pawel
23.05.2017
06:17:48
@ruzzke_mir Нет, не прав.
в простейшем случае для неё есть и имеет смысл операция bind - значит монада. Но можно конечно строго показать, что тип Option<T> - самый настоящий моноид в категории эндофункторов, что есть монада по определению в ТК

Илья
23.05.2017
06:19:19
зачем нужна такая обёртка?
Чтобы если что-то пойдет не так - не было исключений. Мне говорили что в фишарпе их лучше не юзать, а вместо них монада MayBe.

Летучая
23.05.2017
06:19:33
Но зачем использовать регекспы
Если можно new Uri() и Uri.Body

Google

Илья
23.05.2017
06:20:27
Но зачем использовать регекспы
эмм, ну регексы дохера где юзаются... а в той функции которая убирает параметры если ты не заметил я регексы вообще не юзаю, эта обертка была для других целей
Uri никак не дает возможности получиться запрос без параметров
https://msdn.microsoft.com/ru-ru/library/system.uri(v=vs.110).aspx

Pawel
23.05.2017
06:22:43

Летучая
23.05.2017
06:22:46
Это не метод, а свойство
Есть еще свойство для Path

Илья
23.05.2017
06:23:09
Не придумый ничего - зайди в мсдн и посмотри прототип класса Uri
нету там никакого боди

Летучая
23.05.2017
06:24:18
щас напишу

Илья
23.05.2017
06:25:00
?

Vasily
23.05.2017
06:26:18
Шо за шум?

Vasily
23.05.2017
06:26:32
Стьюденты развлекаются?

Илья
23.05.2017
06:30:55
так все-таки как бы вы оптимизировали приведенный выше код?

Vasily
23.05.2017
06:31:17
По ссылке?
Или где он?

Илья
23.05.2017
06:32:16

Vasily
23.05.2017
06:33:37
Для начала, воспользовался бы классом uribuilder

Admin
ERROR: S client not available

Google

Илья
23.05.2017
06:33:51

Vasily
23.05.2017
06:34:08
Там есть метод GetQueey
Query
Потом в полученной квере загуляешь все параметры, профит
Зануляешь

Ilya
23.05.2017
06:35:13
щас напишу
https://drive.google.com/uc?id=0B1JqG9-isoYPSUNVc3d0WW1MQ0k
не знаю как на f#

Илья
23.05.2017
06:35:56

Ilya
23.05.2017
06:36:11
а что надо было?

Илья
23.05.2017
06:36:13
ты просто выбрал хост из ссылки, а не убрал параметры
мне надо убрать из ссылки только то что после вопросительного знака
?param=value
остальное host/path1/path2 должно остаться

Ilya
23.05.2017
06:37:06

Летучая
23.05.2017
06:37:18
open System
/// Checks if uriString is a valid
/// absolute Uri.
let isValidUri uriString =
(uriString, UriKind.Absolute)
|> Uri.IsWellFormedUriString
/// Removes params from Uri.
let dropParams uriString =
match isValidUri <| uriString with
| false -> failwith "Passed invalid Uri!"
| true ->
Uri(uriString)
|> fun u ->
sprintf "%s%s%s%s" u.Scheme Uri.SchemeDelimiter u.Authority u.AbsolutePath
(да, Body рил там не было, сорян)

Илья
23.05.2017
06:44:20

Igor
23.05.2017
06:45:32
Никто не знает где взять компилятор Fable 1.0?
Из сорцов собрать не могу тк мастер с ошибками, а в тегах только 0.7.5

Летучая
23.05.2017
06:46:39

Roman
23.05.2017
06:46:45

Roman
23.05.2017
06:47:01

Google

Илья
23.05.2017
06:49:39

Evgeniy
23.05.2017
06:50:59
@DarkByte2016 Монада — это тип-обертка, две операции bind и unit, и несколько аксиом, которым эти операции удовлетворяют. Ты из этого определения используешь только тип-обертку option. Почему бы в твоем случае вместо монада не говорить option, или опциональный тип?
Лично меня такое употребление слова монада сбивает с толку.

Igor
23.05.2017
06:52:37
dotnet new -i Fable.Template::*
В этих шаблонах только один тип проекта и главная проблема что там результирующий файл не сохраняется на диск (как раньше).
В итоге не понятно как это объединить с ReactNative, который должен JS сам еще скомпилировать.
В issue на эту тему говорили что нужно компилировать вручную с помощь fable компилятора, но я не как его не могу найти.
Искал готовый в файлах проекта созданного через dotnet new fable, но не нашел.
Надо конечно просто подождать, думаю авторы сами все пофиксят - но очень уж хочется попробовать Fable 1.0 на RN

Илья
23.05.2017
06:53:34