@Fsharp_chat

Страница 450 из 772
Nikolay
09.01.2018
08:11:41
Я бот.
Я подозревал

Anna
09.01.2018
08:12:09
Почему некрасиво и неправилньо?
Исходя из определения этой штуки. На мой взгляд, точнее будет "ограничение значениями"

https://docs.microsoft.com/ru-ru/dotnet/fsharp/language-reference/generics/automatic-generalization#value-restriction
Там какой-то гуглоперевод, простите. Я ему не верю.

Google
Pavel
09.01.2018
08:14:11
Там какой-то гуглоперевод, простите. Я ему не верю.
им буду пользоваться многие кто окажется на сайте

и он предлагает собственно тоже самое "Ограничение значения"

Anna
09.01.2018
08:15:48
и он предлагает собственно тоже самое "Ограничение значения"
Штука в том, что никакие значения там не ограничиваются

Выражения, которые обобщаются автоматически, ограничиваются синтаксическими значениями.

Pavel
09.01.2018
08:16:34
"Ограничение значения" а это в русском настолько размытое сочетание что его можно трактовать как угодно

Evgeniy
09.01.2018
08:22:48
@AnutaU Я бы оставил перевод как у Пирса.

Anna
09.01.2018
08:24:32
@AnutaU Я бы оставил перевод как у Пирса.
Я тоже думала, но может он ещё не настолько устоялся, чтобы можно было исправить неточность?

Evgeniy
09.01.2018
08:26:44
Я тоже думала, но может он ещё не настолько устоялся, чтобы можно было исправить неточность?
Ну, я доверяю переводчикам TaPL. Один из них лингвист по образованию.

Anna
09.01.2018
08:27:47
Evgeniy
09.01.2018
08:29:51
А про мою претензию к термину что думаешь?
Ну, если исходить из того, что в let выражении справа у нас должны быть синтакчисеские значения, то перевод "ограничение значениями" выглядит логично. Но я думаю, мы что-то можем упускать.

Anna
09.01.2018
08:31:33
Я не претендую, конечно, на абсолютную правоту, и с бородатыми дядями спорить по поводу терминологии не очень хочу, но три семестра стилистики перевода слегка заразили меня перфекционизмом ? + природное занудство

Ну, если исходить из того, что в let выражении справа у нас должны быть синтакчисеские значения, то перевод "ограничение значениями" выглядит логично. Но я думаю, мы что-то можем упускать.
Во, а если говорить "ограничения на значения", то тогда получается, что некие значения должны быть ограничены (в моём понимании, чиселкой сверху и/или снизу)

Google
Nikolay
09.01.2018
08:33:55
Ну, я доверяю переводчикам TaPL. Один из них лингвист по образованию.
Ну, тут я думаю нужно быть ещё технически грамотным человеком, чтобы правильно перевести, именно понимать смысл фразы

Anna
09.01.2018
08:37:01
С этим тоже все в порядке.
Лично знаком? Может, прямо у переводчиков TaPL и спросить? :)

Evgeniy
09.01.2018
08:37:18
Лично знаком? Может, прямо у переводчиков TaPL и спросить? :)
Нет, не знаком. Просто это известные ребята.

@AnutaU Возможно, имеется в виду, что значение (value) справа в let выражении должны быть syntactic (оно же nonexpansive expression). Именно в этом состоит ограничение.

Anna
09.01.2018
08:42:27
@AnutaU Возможно, имеется в виду, что значение (value) справа в let выражении должны быть syntactic (оно же nonexpansive expression). Именно в этом состоит ограничение.
А что, логично. Но мне кажется про это не в первую очередь думают, когда видят это словосочетание. Впрочем, и в оригинале value restriction слишком размыто

@AnutaU Возможно, имеется в виду, что значение (value) справа в let выражении должны быть syntactic (оно же nonexpansive expression). Именно в этом состоит ограничение.
Хотя не совсем согласна. Syntactic value это не разновидность просто value, только syntactic. Это по-моему разное совсем

Evgeniy
09.01.2018
08:45:45
Хотя не совсем согласна. Syntactic value это не разновидность просто value, только syntactic. Это по-моему разное совсем
Я считаю, что это разновидность. Значение, полученное с помощью вызова функции, является значением, но не syntactic.

То же с ref.

Anna
09.01.2018
08:47:06
Я считаю, что это разновидность. Значение, полученное с помощью вызова функции, является значением, но не syntactic.
но у нас справа от let не обязательно значение. Значение в результате вычисления того, что справа, получается

В общем, надо ещё подумать хорошенько

Evgeniy
09.01.2018
08:50:54
Там есть ключевое слово val, которое задает value declaration.

Anna
09.01.2018
08:53:23
Там есть ключевое слово val, которое задает value declaration.
да, там вычисляется то, что справа, получается значение, которое привязывается к имени

Evgeniy
09.01.2018
08:53:46
Чтобы была возможность полиморфно обобщать value declatation существует правило — value restriction.

В смысле ограничения на values, объявляемые с помощью val.

Правило состоит в том, что для полиморфного обобщения справа в выражении должны быть syntactic values (nonexpansive expressions).

В описании Standard ML есть разделение на expansive и non-expansive expressions.

Отдельного термина для не синтаксического значения там, конечно, нет.

Но это именно разделение, описанное в стандарте.

Google
Anna
09.01.2018
09:06:19
В описании Standard ML есть разделение на expansive и non-expansive expressions.
С этим я не спорю. Но это именно про выражения речь, а собственно value, которое получается в результате, уже ничем не отличается. Грубо говоря, syntactic value - это сущность, которую мы отличаем во время компиляции. А уже в рантайме это самое выражение будет вычислено, и получится просто value. И ограничение идёт не на эту вычисленную value, а на само выражение, ещё до того, как оно будет вычислено

Evgeniy
09.01.2018
09:08:27
Считай, что это сокращение от value declaration restriction. ;)

Ну, не знаю, я себе так объясняю русский перевод в Пирсе.

Anna
09.01.2018
09:10:24
Ну, не знаю, я себе так объясняю русский перевод в Пирсе.
Логика тут есть, я уже с ним больше согласна, чем была до этого :) но все равно почему-то царапает

А ты мой перевод смотрел?

Evgeniy
09.01.2018
09:13:15
Пока по диагонали. На каникулах тяжело что-то общественно полезным заниматься.

На днях посмотрю внимательнее. Если какие-нибудь исправления будут, я тебе PR отправлю. :)

Evgeniy
09.01.2018
09:37:25
А ты мой перевод смотрел?
Можно еще господина @impworks потыкать. Он умеет в переводы.

Evgeniy
09.01.2018
09:41:11
Киньте ссылку, почитаю
https://github.com/AnnaUdovichenko/translations/blob/master/Finer%20Points%20of%20F%23%20Value%20Restriction/Finer%20Points%20of%20F%23%20Value%20Restriction.md

Andrew
09.01.2018
10:33:21
Закинул пулл-реквест

Очень качественный перевод, поправил только пару мелочей

Anna
09.01.2018
10:34:24
@impworks оооо спасибо!

Я хочу ещё на досуге примеры кода все перепроверить, но пока руки не дошли

Andrew
09.01.2018
10:35:27
Всегда пожалуйста, обращайся :)

Sergey
09.01.2018
12:01:03
Кажется, еще нет? cc @sergey_tihon
мне еще не известны успешны попытки миграции, как впринципе и провальные тоже)

Evgeniy
09.01.2018
12:59:11
https://twitter.com/enricosada/status/950709161234436097

Ух!

Anna
10.01.2018
09:02:51
Я хочу ещё на досуге примеры кода все перепроверить, но пока руки не дошли
Перепроверила. Осталось ещё всякую мелочь немножко поправить и готов будет перевод

Google
Pavel
10.01.2018
11:19:44
чтото тут не так

Anna
10.01.2018
11:45:23
прочитал несколько раз " что empty - это ти́повая функция"
> Indeed, compiler knows that empty is a type function that not automatically generalizable

Pavel
10.01.2018
11:51:28
А оригинал это кто?

Anna
10.01.2018
11:51:59
Оригинал статьи вот https://blogs.msdn.microsoft.com/mulambda/2010/05/01/finer-points-of-f-value-restriction/

A64m
10.01.2018
11:57:12
я думаю, что в этой статье type function употребляется неверно

Anna
10.01.2018
11:58:35
Значит, в этом месте я недовникла

A64m
10.01.2018
12:00:28
функция просто параметрически полиморфная. Поэтому у нее естественно есть типовые параметры и ее надо применять к типам (ну в system F так) просто в F# такие применения могут быть неявными

Andrew
10.01.2018
12:00:44
Вообще это скорее обобщенная функция

A64m
10.01.2018
12:00:48
type function - это функция которая возвращает тип, не только принимает

Andrew
10.01.2018
12:00:57
Просто она принимает только тип

A64m
10.01.2018
12:01:32
Вообще это скорее обобщенная функция
ну да, можно говорить обобщенная функция, это то же самое, что параметрически полиморфная

Anna
10.01.2018
12:04:11
тут два варианта тогда: 1. Убрать в переводе "типовая функция", оставить примечание, почему убрали 2. Оставить "типовая функция", добавить примечание, почему это неточно

Andrew
10.01.2018
12:04:45
Вариант 1, я думаю, лучше

Anna
10.01.2018
12:18:57
Вариант 1, я думаю, лучше
Я, наоборот, за второй. Всё-таки это перевод, значит переводим как есть, а где несогласны - оставляем комментарий. Но я тут не знаю.

Надо ещё проверить, мало ли я где-то налажала в терминах, или в статье неточности

Себя я старалась проверять, а вот автора статьи не очень :)

Andrew
10.01.2018
12:22:10
Зависит от того, для чего ты делаешь перевод. На хабре, мне кажется, правильность и доходчивость подачи материала важнее побуквенного следования оригиналу - но наверное в научных работах всё иначе

Evgeniy
10.01.2018
12:31:38
Type function -- это устойчивое сочетание в контексте F#.

Google
Evgeniy
10.01.2018
12:32:59
@AnutaU

Anna
10.01.2018
12:35:11
Type function -- это устойчивое сочетание в контексте F#.
то есть, в статье всё правильно? но тогда путаница получается всё равно

Evgeniy
10.01.2018
12:35:24
Да, все правильно.

@AnutaU F# 4.0 Language Specification пункт 10.2.3

Pavel
10.01.2018
12:41:01
Type function -- это устойчивое сочетание в контексте F#.
сочетание может и устойчивое но за пределами f# его нет.

Anna
10.01.2018
12:41:08
@AnutaU F# 4.0 Language Specification пункт 10.2.3
Я короче ни в F# не эксперт, ни в теории типов. Поэтому перевела как было и не думала ни про какие подвохи ?

Pavel
10.01.2018
12:41:31
соответственно русскоязычного устойчивого определения нет

Evgeniy
10.01.2018
12:41:46
сочетание может и устойчивое но за пределами f# его нет.
Статья про F#, принятую терминологию нужно соблюдать.

Anna
10.01.2018
12:42:43
Статья про F#, принятую терминологию нужно соблюдать.
А по-русски это в контексте F# вообще кто-то употребляет? правильно это переводить как "типовая функция"?

Pavel
10.01.2018
12:46:33
"типовая функция" звучит както не в тему. типовая == обычная

Pavel
10.01.2018
12:46:59
везде ударений не повставляешь. будут недопонимания

т.е. в русскую терминологию вносить такой вариант нежелательно

Evgeniy
10.01.2018
12:49:40
А по-русски это в контексте F# вообще кто-то употребляет? правильно это переводить как "типовая функция"?
Да, это и в контексте F#, и в контексте теории типов должен быть правильный перевод.

Ну, то есть, я с таким терминов встречался.

Pavel Предложи свой вариант.

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