@Fsharp_chat

Страница 550 из 772
Evgeniy
12.04.2018
10:53:32
я понимаю, еще не дошел до почему, пока только про как в итоге сделать, про f1 f2 и все такое
> Also note the code may be much slower than passing in two functions. That's a major reason for not adding this feature.

Я, конечно, хотел бы, чтобы такая фича у нас была. Но пока нет.

Roman
12.04.2018
10:54:36
> Also note the code may be much slower than passing in two functions. That's a major reason for not adding this feature.
там ниже было и то, что это понятно, но тот кому ндо может ее использовать

а кому не надо может не использовать

Google
Evgeniy
12.04.2018
10:55:15
Да. Ну, эт самое, все вопросы к Сайму.

Roman
12.04.2018
10:55:29
ага, спасибо за ссылку)

Evgeniy
12.04.2018
10:56:58
Стандартный воркэраунд — через генерик методы делать. Так, например, в TypeShape делают, где нужен rank polymorhism.

Денис
12.04.2018
11:01:31
В vs : ctrl+break
Мне условное завершение нужно

Pavel
12.04.2018
11:15:45
Igor
12.04.2018
11:16:28
лол, через исключение))

Pavel
12.04.2018
11:17:26
естессно. он же аналог Environment.Exit() хотел

Roman
12.04.2018
11:19:40
Денис
12.04.2018
11:32:45
Ну такое, можно без исключений?

Pavel
12.04.2018
11:33:38
Environment.FailFast()

Pavel
12.04.2018
11:39:47
солидно and then includes the message in error reporting to Microsoft

Ну такое, можно без исключений?
можно если сам напишешь корректный выход из своих функций по условию

раритет накопал http://tomasp.net/blog/imperative-ii-break.aspx/

Google
?‍?
12.04.2018
13:28:53
Минутка творчества: Писал программу По паттернам, монадам - В рантайм упала.

Roman
12.04.2018
15:20:43
Привет!

@Kleidemos по поводу перевода, вычитку еще не делали мс рашиа, на следующей неделе будет посвободнее, я держу рку на пульсе)

Klei
12.04.2018
15:57:19
Ок. Я не тороплюсь.

Artemy
12.04.2018
19:44:20
https://i.imgur.com/B1UvV4Z.png Как тут "factoring" правильно перевести будет? Факторинг? Честно говоря, не встречал раньше такого термина (но, в принципе, понятно, что он означает).

Хотя у "факторинга" уже есть значение, относящееся к области финансов

Evgeniy
12.04.2018
19:54:40
Но здесь сложно обыграть как в оригинале.

Artemy
12.04.2018
19:55:21
Да, по смыслу текста я там глагол factor и переводил как "разбивать/делить"

Ещё вот с "once factored out" несколько непонятно. "Как только будет реализовано такое разделение/декомпозиция, ..." — как-то так я бы это перевёл, что ли

Но немного криватенько как-то

Но здесь сложно обыграть как в оригинале.
Да, это как переводить шутки, основанные на игре слов.)

В результате переводчики вместо них какие-то свои шутки могут вставить, которые могут оказаться такими себе

Evgeniy
12.04.2018
20:13:05
Страннота. https://github.com/fsharp/fsharp/issues/840

Привет.

Oleg
12.04.2018
20:42:54
Привет!

Google
Artemy
12.04.2018
21:01:48
Спасибо

Evgeniy
13.04.2018
05:26:58
http://www.colinbull.net/adopting_fsharp/

Alex
13.04.2018
07:51:59


Evgeniy
13.04.2018
07:52:38
https://github.com/colinbull/adopting_fsharp

Шли PR сразу.

Alex
13.04.2018
07:52:52
thx

Anna
13.04.2018
07:52:57
ооо, почти как в загадке про "дизайн скороговорки"

Evgeniy
13.04.2018
07:59:06
> F# is a very good object oriented language use it

Всем говорю, а мне не верят. :)

Alex
13.04.2018
08:01:38


Roman
13.04.2018
08:03:34
@yerumaku triggered )

?‍?
13.04.2018
08:03:34
Для случаев, когда несколько объектов имеют те же мемберы, и например, нужно составлять список тиких разных типов (чтобы обращаться к этим мемберам), реализующих один интерфейс А вот когда в записи используются функции, то получается что-то типа перегрузок (типа замены наследования, когда тип остаётся тем же)

Artemy
13.04.2018
08:03:52
Чаще интерфейсы актуальнее, как я понял

Roman
13.04.2018
08:04:00
Vasily
13.04.2018
08:04:31
С точки зрения Object expression разницы по идее нет

Artemy
13.04.2018
08:04:42
Собственно, я и не знаю, какие преимущества у записи с функциями

Vasily
13.04.2018
08:04:55
Если нужно на лету конструировать и отдавать в c#, например, то, имхо, лучше интерфейсы

Roman
13.04.2018
08:06:17
С точки зрения Object expression разницы по идее нет
тут смысл в том что интерфейс может реализовываться и рекордом , а ф-ция принимать интерфейс

что оч удобно

Google
Evgeniy
13.04.2018
08:06:45
Мне кажется, лучше интерфейс. ? Проще интероп.

Roman
13.04.2018
08:07:25
кстати let myFunc (foCompare:#IComparable) = тут нужна решетка?

Alex
13.04.2018
08:07:58
Понятно, спасибо за ответы

Evgeniy
13.04.2018
08:08:36
Мне кажется, лучше интерфейс. ? Проще интероп.
С другой стороны, конечно, одна функция мне нравится больше, чем интерфейс с одним методом.

?‍?
13.04.2018
08:09:51
С другой стороны, конечно, одна функция мне нравится больше, чем интерфейс с одним методом.
Интерфейс с одним методом как раз про поведение, например, веб-прогр, геймдев

Alex
13.04.2018
08:10:05
Мы сейчас пишем проект на C#, у нас куча интерфейсов с одним лишь методом, после F# аж как то больно смотреть )

?‍?
13.04.2018
08:11:16
Функция тоже про поведение.
Так вы про функцию внутри записи или что?

Evgeniy
13.04.2018
08:11:28
?‍?
13.04.2018
08:11:59
Просто про функцию.
Тогда добавлю, про обобщение поведения

Evgeniy
13.04.2018
08:12:20
Тогда добавлю, про обобщение поведения
Ну, функции для этого и нужны.

?‍?
13.04.2018
08:13:16
Evgeniy
13.04.2018
08:13:19
Мне все-таки нравитcя использовать функции внутри F# кода, и интерфейсы с одним методом, когда нужен интероп.

Alex
13.04.2018
08:14:01
Мы сейчас пишем проект на C#, у нас куча интерфейсов с одним лишь методом, после F# аж как то больно смотреть )
Предлогали так писать, дабы тестировать было легче, однако после этого и тесты практически писать перестали :D

Artemy
13.04.2018
08:14:29
С другой стороны, конечно, одна функция мне нравится больше, чем интерфейс с одним методом.
По факту, почти одно и то же получается. Только что объявление интерфейса по длиннее будет

Evgeniy
13.04.2018
08:15:01
По факту, почти одно и то же получается. Только что объявление интерфейса по длиннее будет
И в месте использования будет различие по удобству использования.

Ну, например, просто лямбду кинуть, или создать значение через object expression.

Google
Artemy
13.04.2018
08:17:59
В общем, разумный вариант уже был озвучен

Evgeniy
13.04.2018
08:18:09
Зато на интерфейсах и object expressions можно всякие интересные штуки эмулировать, типа rank-2 polymorphism или GADT. ?

Я теряю нить
Интерфейс с одним методом и тип функции с соответствующей сигнатурой — это примерно одно и тоже, я об этом.

Alex
13.04.2018
08:20:56
Так можно же делеагат передавать?
А с DI как быть? Сейчас оно выглядит вот так



Evgeniy
13.04.2018
08:23:15
Интерфейс с одним методом и тип функции с соответствующей сигнатурой — это примерно одно и тоже, я об этом.
Примерно, потому что интерфейс — это настоящий тип, который отражается в IL. А вот type abbreviations, которые удобно использовать в F#, стираются, функции становится сложно различать.

Ааа , general
http://fssnip.net/mq/title/An-attempt-at-encoding-GADTs

?‍?
13.04.2018
08:24:55
Интерфейс с одним методом и тип функции с соответствующей сигнатурой — это примерно одно и тоже, я об этом.
Вот между словами функция и тип функции и была та самая разница в сложности понимания. https://t.me/Fsharp_chat/54967

Evgeniy
13.04.2018
08:28:02
Короче, зависит, как обычно. Design space достаточно большой, нужно выбирать разумно.

Bonart
13.04.2018
08:30:45
тут смысл в том что интерфейс может реализовываться и рекордом , а ф-ция принимать интерфейс
Интерфейс лучше как явный контракт, но может быть плохо с лишними аллокациями и дорогими вызовами

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