@Fsharp_chat

Страница 152 из 772
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# и потом их сравнить

Илья
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
@DarkByte2016 Там нет монад.
а как же option? это же монада MayBe

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

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

Илья
23.05.2017
06:13:32
@DarkByte2016 что ты хочешь сделать и к чему этот код?
нетрудно догадаться по коду что он делает вроде

первая функция ищет по регулярке, вторая убирает из 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
Если так говорить, то можно только больше запутать человека.

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
Но зачем использовать регекспы
эмм, ну регексы дохера где юзаются... а в той функции которая убирает параметры если ты не заметил я регексы вообще не юзаю, эта обертка была для других целей

Если можно new Uri() и Uri.Body
у Uri нет метода Body если что. ни статичного, ни от инстанса

Uri никак не дает возможности получиться запрос без параметров

https://msdn.microsoft.com/ru-ru/library/system.uri(v=vs.110).aspx

Pawel
23.05.2017
06:22:43
Чтобы если что-то пойдет не так - не было исключений. Мне говорили что в фишарпе их лучше не юзать, а вместо них монада MayBe.
код который ты привёл исключений не выбрасывает. И обёртка типа Regex.Match option бесполезна, точно тебе говорю

Летучая
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
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
https://drive.google.com/uc?id=0B1JqG9-isoYPSUNVc3d0WW1MQ0k
нихера это не то что мне надо было

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 рил там не было, сорян)

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

Летучая
23.05.2017
06:46:39
а как же option? почему ты используешь failwith который кидает исключение, а не монады? в каких вообще случаях имеет смысл юзать option?
option в данном контексте этож необязательный параметр емнип типа как в Сш (string defaultStr = null) а так хз, в продакшоне не юзаю, студент. мб профи чего скажут про бестпректис ;)

Roman
23.05.2017
06:46:45
Google
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
Лично меня такое употребление слова монада сбивает с толку.
а мне наоборот нравится и хочется наконец въехать в нее, когда говоришь монада - для простых смертных заложников ООП ты кажешься гением ?

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