@Fsharp_chat

Страница 494 из 772
Ivan
03.03.2018
20:13:12
Тяжело писать в вебе.

Evgeniy
03.03.2018
20:14:01
Компиляция реализаций тоже нужно поправить.

Ivan
03.03.2018
20:14:16
Я там еще пример зачем набросал. А то не ясно ведь ?

Смотрю

Google
Ivan
03.03.2018
20:15:41
Чтоб совсем чисто, действительно для компилера сложно. Но можно поробовать

Evgeniy
03.03.2018
20:16:38
Из концептуального — мне не нравятся связанные типы. Это же просто дополнительный параметр типа. Почему бы его просто не записать так?

Будет предложение про multi-parameter type classes.

Ivan
03.03.2018
20:20:26
Сам так же думал, но понял зачем. Смотри если я реализую тот же Iterator, то тип по какому он итерируется может быть выдернут из реализации, поэтому мне его знать не нужно. Спер из Rust и Scala.

Мульти параметр - наваяю сампл

Evgeniy
03.03.2018
20:23:52
Второй момент, в Classes for the Masses не вводится новый синтаксис для трейтов, только аннотации [<Trait>] и [<Witness>]. Было бы неплохо привести к такому виду.

Пример посмотрю завтра. Сейчас спать. :)

Ivan
03.03.2018
20:24:49
Сделаю, то же завтра ?

P
03.03.2018
22:27:52
А trait семантически идентичен type class?

Ivan
03.03.2018
22:30:34
Вроде да. И то и другое поведение - данные

Friedrich
04.03.2018
04:46:02
Посмотрите, покритикуйте. Если кто сможет, помогите с английским ? https://gist.github.com/ijsgaus/fe60d8937fa84ea1045a172c212d04f7
«Компиляция реализаций: Компилируются в структуры или расширения:» — то есть ты предлагаешь пару альтернатив, чтоб сообщество из них выбрало более подходящую? Или компилятор должен выбирать?

Посмотрите, покритикуйте. Если кто сможет, помогите с английским ? https://gist.github.com/ijsgaus/fe60d8937fa84ea1045a172c212d04f7
9, 10 надо бы уточнить — я не совсем понял сходу, в каких местах потребуется менять вывод типов. А ещё я не понял, зачем нужен рантайм-поиск :(

Google
Friedrich
04.03.2018
04:54:35
Посмотрите, покритикуйте. Если кто сможет, помогите с английским ? https://gist.github.com/ijsgaus/fe60d8937fa84ea1045a172c212d04f7
Ну и, наконец, если нужна помощь с переводом на английский (чтоб запостить в fslang-suggestions) — тыкайте меня, я готов помочь в меру своих скромных возможностей. Когда сформируем окончательную версию, конечно.

Evgeniy
04.03.2018
08:04:01
https://github.com/fsharp/fslang-suggestions/issues?q=is%3Aopen+is%3Aissue+label%3Aapproved-in-principle+label%3Aproposed-priority

Новый ярлык появился.

Evgeniy
04.03.2018
08:15:18
О, твой пропозол апрувнули!
Давно. Я даже RFC написал же.

Fill
04.03.2018
08:36:00
Можно мини ревью? создание последовательности рандомных чисел от 0 до max let rec uniqRand set max= match Set.count set = max with | true -> None | false -> let r = new System.Random() let i = r.Next max if Set.contains i set then uniqRand set max else Some i let rgen max acc = match uniqRand acc max with | None -> None | Some item -> Some (item, Set.add item acc) let rand max = Seq.unfold (rgen max) Set.empty

естественно, без повторяющихся

Pavel
04.03.2018
08:48:42
seq { 1..max } |> Seq.orderBy Guid.NewGuid

Сложность алгоритма нужно смотреть, само собой

Но тот, чо выше - будет последние искать оооочень долго

Вероятно sequence тут не нужен и можно просто массив отсортировать (я про свой)

Ну и вообще - за этим в Гугл.

Fill
04.03.2018
08:52:39
окей, спасибо

Friedrich
04.03.2018
08:53:03
Ага, это общая альтернативная идея — сгенерить N заведомо уникальных чисел, а потом пошаффлить (необязательно так, как указал Павел; мне кажется, можно и получше сделать).

Pavel
04.03.2018
08:54:09
Я лежу в ванной и читаю телеграм, у меня не эффективный алгоритм. За правильным - в Гугл.

Fill
04.03.2018
08:54:12
я ведь правильно понимаю, что сортировка к seq примениться, как только я возьму хотя бы один итем?

Pavel
04.03.2018
08:54:53
Да, когда создастся энумератор

Это же IEnumerable

Friedrich
04.03.2018
08:56:59
Я лежу в ванной и читаю телеграм, у меня не эффективный алгоритм. За правильным - в Гугл.
Да ну, просто комментарий оставить: // Павел рекомендовал из ванной ?

Google
Aleksander
04.03.2018
09:51:21
Guid.NewGuid операция сама по себе довольно "дорогая", если сортировать по тому-же random.Next(), будет быстрее

Evgeniy
04.03.2018
10:02:12
Vladimir должен в шаффлинге шарить.

Fill
04.03.2018
10:02:28
штука в том, что в этом кейсе есть возможность сделать это дёшево

я просто не вижу, как

но я придумаю)

Klei
04.03.2018
10:34:10
но я придумаю)
Легко допиливается для последовательности произвольной длины. http://neerc.ifmo.ru/wiki/index.php?title=%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D0%BE%D0%B9_%D0%BF%D0%B5%D1%80%D0%B5%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8,_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%A4%D0%B8%D1%88%D0%B5%D1%80%D0%B0-%D0%99%D0%B5%D1%82%D1%81%D0%B0

Fill
04.03.2018
10:35:55
ох

элементарно жи

позор на мою голову

Klei
04.03.2018
10:39:52
Норм, я в первый раз на фенвике сделал.

Fill
04.03.2018
10:41:48
так, если я применю этот алгоритм к секвенсу, мне всё же придётся заплатить лишним О n

или я не понимаю чего-то

Klei
04.03.2018
10:47:08
Тебе нужна перестановка меньше чем за O(n)?

Все равно в этом месте надо будет собрать новую коллекцию.

Vladimir
04.03.2018
11:01:20
Vladimir должен в шаффлинге шарить.
Все правильно уже сказали) https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle Реализации можно посмотреть в треде https://github.com/fsharp/fslang-suggestions/issues/508

А знает кто-нибудь как одновременно запаблишить все проекты в солюшне?

Vladimir
04.03.2018
12:09:24
Я сейчас паблишу по очереди, 6 проектов для паблиша, с либами 12, но получается медленно

Да, в отдельности, на каждый проект свой докер контейнер

Самая большая проблема в Paket - он каждый проект ресторит заново и ищет зависимости, а хотелось бы один раз для всех это сделать

Google
Aleksander
04.03.2018
12:30:01
А как докер файл выглядит?

Vladimir
04.03.2018
12:32:31
FROM microsoft/dotnet:2-runtime WORKDIR /app COPY artifacts . ENTRYPOINT ["dotnet", "MyProject.dll"]

соотвтственно перед этим каждому проекту я делаю dotnet publish -c Release -o artifacts

Aleksander
04.03.2018
12:45:03
А, ты значит не в контейнере билдишь. Если билд делать тоже в контейнере, то там вроде бы возможно отделить рестор пакетов от билда исходников. Пакеты не очень часто меняются, поэтому этот слой будет почти всегда браться из кэша.

Vladimir
04.03.2018
12:47:44
Я думаю нет разницы где билдить. Если есть возможность ускорить билд внутри контейнера, то она есть и без него)

Билд солюшна то один раз происходит например

Почему бы не иметь возможность сделать и паблиш солюшна)

Ivan
04.03.2018
12:52:28
Publish solution. Из корня

Vladimir
04.03.2018
12:55:36
не вижу такой кнопочки)

Ivan
04.03.2018
12:57:23
в корне dotnet publish -o %cd\artifactacts\ - это под виндой, под линухом вместо %cd что то еще, простите коллегии, не помню

Vladimir
04.03.2018
12:57:52
спс, сча попробую)

Ivan
04.03.2018
12:59:47
Вот вариант gitlab-ci, который я использую:

stages: - build - pack - publish build: variables: PROJECT: YouDo.Data tags: - net47 - netstandard2.0 stage: build except: - /^(\d+.\d+.\d+)(-(\w+(.\w+)*))?$/ script: - echo Restoring packages - echo Building - dotnet build - echo "Build complete" pack: variables: PROJECT: YouDo.Data tags: - net47 - netstandard2.0 stage: pack only: - /^(\d+.\d+.\d+)(-(\w+(.\w+)*))?$/ script: - echo Packing - dotnet pack -c Debug —include-symbols —include-source -o "%cd%\artifacts\" - echo "Publishing nuget packages" artifacts: expire_in: 31d paths: - artifacts/*.nupkg publish: variables: PROJECT: YouDo.Data tags: - net47 - netstandard2.0 stage: publish only: - /^(\d+.\d+.\d+)(-(\w+(.\w+)*))?$/ - manual script: - echo "Publishing nuget packages" - dotnet nuget push —force-english-output -s YouDo -k "%NUGET_TOKEN%" "%cd%"\artifacts\*.nupkg"

Vladimir
04.03.2018
13:05:52
Круто, работает, спасибо) Правда паблишит не в artifacts, а в \Í\artifacts\

dotnet publish -o artifacts - а вот так правильно паблишит)

Ivan
04.03.2018
13:08:11
Да

Roman
04.03.2018
13:08:41
Да
Есть там в проде f# код?

Ivan
04.03.2018
13:09:04
Нету ? Нас там 2

Roman
04.03.2018
13:09:30
Нету ? Нас там 2
А второй товарищ тут?)

Google
Ivan
04.03.2018
13:09:54
Нет, он пока падован ?

Roman
04.03.2018
13:10:21
Нет, он пока падован ?
Тут ведь всем рады) Ну ок

Ivan
04.03.2018
13:10:41
Я ж не могу заставить ?

Коллеги, а не провести ли нам опрос. Прям здесь. Если fsharp в продакшен кто сеолько денег хочет?

С эти хоть к начальству будет с чем идти. Все ж f#писты в среднем сильнее c#пистов

Хоть пару команд собрать для примера

Ivan
04.03.2018
13:20:14
Это в мире, а я в реале. Вот если бы я команду собирал, кто за сколько пошел

Плюс доп условия

А то с этим.. У меня и кложа, и раст, и эликсир, и го, и f#, и scala - а зарплата намного не та

Да к опросу, Москва или Казань. С переездом

Я тогда спазу к начальству пойду.

Если хотя бы 5 наберем

Vlad
04.03.2018
14:33:46
В среднем по США *

Диёр
04.03.2018
14:34:07
В среднем по сша там отдельный график был

Fill
04.03.2018
15:07:28
я сейчас ищу работу в мск, если был бы кейс с F#, на любые бабки бы пошёл

Sergey
04.03.2018
17:18:14
я сейчас ищу работу в мск, если был бы кейс с F#, на любые бабки бы пошёл
таки были варианты, вот от 150тр - https://twitter.com/IrinaLukavskaya/status/938814269327626241

Fill
04.03.2018
17:43:22
ну уж 150 чёт совсем мало

Roman
04.03.2018
17:44:36
Fill
04.03.2018
17:45:00
в моей практике от == столько и готовы платить максимально

и блин, F# девелоперы - редкость, by default больше должно быть

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