Перевод терминов Хаскелла
От: deniok Россия  
Дата: 05.12.06 10:40
Оценка: 23 (2)
В продолжение обсуждения перевода терминов ФП: list comprehensions
Автор: Mamut
Дата: 19.10.06
и continuations
Автор: Valodzka
Дата: 16.03.06
.
В скобках переводы, которые я встречал, но которые мне нравятся меньше чем мои. Приветствуются комментарии и замечания.

guards -> стражи (охрана)
Так легче говорить про отдельного стража (в ед. числе).

curried function -> каррированная функция
uncurried function -> анкаррированная функция
Как-то приставка не очень? Но некаррированная менее точно выражает смысл.

section -> сечение (секция)
По-моему, сечение лучше выражает смысл термина: был 2-арный оператор, частично применили (сделали сечение по одной арности) — стало 1-арный.

ad hoc polymorphism -> специальный полиморфизм
Было обсуждение ad hoc
Автор: adontz
Дата: 29.06.05
, правда в другом контексте. Вроде как такой перевод (специальный полиморфизм) уже устоялся.

instance declaration -> объявление представителя (объявление экземпляра)
Экземпляр наводит на мысль об объекте в памяти (хотя это, возможно, ООП-наведённый образ ). Здесь же (в Хаскелле) речь идёт об объявлении типа представителем класса типа.

unit type -> пустой тип (единичный тип)
Тут сам не определился. Я ещё согласен с переводом , unit expression -> единичное выражение, хотя здесь unit имеет оттенок единственное (собственно unit от того, что выражение ( ) — единственное в этом типе). Но что его тип (unit type), переводится как единичный тип По смыслу он эквивалентен void в C-подобных языках
Re: Перевод терминов Хаскелла
От: raskin Россия  
Дата: 05.12.06 19:07
Оценка: 27 (3)
deniok wrote:
> *curried function -> каррированная функция*
> *uncurried function -> /ан/каррированная функция*
> Как-то приставка не очень? Но /некаррированная/ менее точно выражает смысл.
декаррированная тоже не очень, но на мой вкус лучше.

> *unit type -> пустой тип (единичный тип) *

> Тут сам не определился. Я ещё согласен с переводом , *unit expression ->
> единичное выражение*, хотя здесь unit имеет оттенок единственное
> (собственно unit от того, что выражение ( ) — единственное в этом типе).
> Но что его тип (unit type), переводится как /единичный тип/ По смыслу он
> эквивалентен void в C-подобных языках
Может, что-то вроде "точечный" или "нейтральный"?
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Перевод терминов Хаскелла
От: Кодт Россия  
Дата: 06.12.06 15:37
Оценка: 27 (3) :)
Здравствуйте, raskin, Вы писали:

R>deniok wrote:

>> *curried function -> каррированная функция*
>> *uncurried function -> /ан/каррированная функция*
>> Как-то приставка не очень? Но /некаррированная/ менее точно выражает смысл.
R>декаррированная тоже не очень, но на мой вкус лучше.

каррирование — это отображение (X*Y*...*Z)->T на X->Y->...->Z->T
Декаррирование — наоборот, X->Y->...->Z->T на (X*Y*...*Z)->T — т.е. создание функции от декартова произведения типов аргументов. Может быть, назвать его "декартированием"?

>> *unit type -> пустой тип (единичный тип) *

R>Может, что-то вроде "точечный" или "нейтральный"?

Точечный — перекликается с теорией категорий.
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[3]: Перевод терминов Хаскелла
От: deniok Россия  
Дата: 06.12.06 16:32
Оценка:
Здравствуйте, Кодт, Вы писали:

>>> *unit type -> пустой тип (единичный тип) *

R>>Может, что-то вроде "точечный" или "нейтральный"?

К>Точечный — перекликается с теорией категорий.


В точку
Re[3]: Перевод терминов Хаскелла
От: Mamut Швеция http://dmitriid.com
Дата: 07.12.06 08:25
Оценка:
R>>декаррированная тоже не очень, но на мой вкус лучше.

К>каррирование — это отображение (X*Y*...*Z)->T на X->Y->...->Z->T

К>Декаррирование — наоборот, X->Y->...->Z->T на (X*Y*...*Z)->T — т.е. создание функции от декартова произведения типов аргументов. Может быть, назвать его "декартированием"?

Тогда придется каждый раз, когда применяется этот термин, давать ссылку на объяснение, что ж это такое-то
... << RSDN@Home 1.2.0 alpha rev. 668>>


dmitriid.comGitHubLinkedIn
Re: Перевод терминов Хаскелла
От: Трурль  
Дата: 07.12.06 11:28
Оценка: 28 (3)
Здравствуйте, deniok, Вы писали:

D>guards -> стражи (охрана)

Мне больше нравиться "охрана", а ещё больше "предохранитель" (как в переводе "Дисциплины программирования").

D>uncurried function -> анкаррированная функция

D>Как-то приставка не очень? Но некаррированная менее точно выражает смысл.
А какой смысл подразумевается? Очень часто uncurried function озачает именно "функция в первозданной форме".

D>section -> сечение (секция)

D>По-моему, сечение лучше выражает смысл термина: был 2-арный оператор, частично применили (сделали сечение по одной арности) — стало 1-арный.
Сечение — однозначно лучше. Даже не понимаю, откуда взялись "секции".

D>ad hoc polymorphism -> специальный полиморфизм

D>Было обсуждение ad hoc
Автор: adontz
Дата: 29.06.05
, правда в другом контексте. Вроде как такой перевод (специальный полиморфизм) уже устоялся.

Вроде, устоялся. Хотя латинские выражения часто используютя как есть.

D>instance declaration -> объявление представителя (объявление экземпляра)

D>Экземпляр наводит на мысль об объекте в памяти (хотя это, возможно, ООП-наведённый образ ). Здесь же (в Хаскелле) речь идёт об объявлении типа представителем класса типа.
Представитель класса — элемент, который представляет весь класс. Так что здесь речь вовсе не об этом. Скорее, объявляется принадлежность классу (или членство — кому больше нравится). "Объявление экземпляра" звучит несколько коряво, но у нас же принято делать кальки, а эта самая подходящая.

D>unit type -> пустой тип (единичный тип)

D>Тут сам не определился. Я ещё согласен с переводом , unit expression -> единичное выражение, хотя здесь unit имеет оттенок единственное (собственно unit от того, что выражение ( ) — единственное в этом типе). Но что его тип (unit type), переводится как единичный тип По смыслу он эквивалентен void в C-подобных языках
Void означает отсутсвие типа. А unit всё же полноценный тип. Может, "единичный" и не совсем хорошо, но политкорректное "одноэлементный" .
Re[2]: Перевод терминов Хаскелла
От: deniok Россия  
Дата: 07.12.06 13:21
Оценка:
Здравствуйте, Трурль, Вы писали:

Т>Здравствуйте, deniok, Вы писали:


D>>guards -> стражи (охрана)

Т>Мне больше нравиться "охрана", а ещё больше "предохранитель" (как в переводе "Дисциплины программирования").
Предохранитель — отлично! Ни разу не видел!

D>>section -> сечение (секция)

D>>По-моему, сечение лучше выражает смысл термина: был 2-арный оператор, частично применили (сделали сечение по одной арности) — стало 1-арный.
Т>Сечение — однозначно лучше. Даже не понимаю, откуда взялись "секции".
+1

D>>instance declaration -> объявление представителя (объявление экземпляра)

D>>Экземпляр наводит на мысль об объекте в памяти (хотя это, возможно, ООП-наведённый образ ). Здесь же (в Хаскелле) речь идёт об объявлении типа представителем класса типа.
Т>Представитель класса — элемент, который представляет весь класс. Так что здесь речь вовсе не об этом. Скорее, объявляется принадлежность классу (или членство — кому больше нравится). "Объявление экземпляра" звучит несколько коряво, но у нас же принято делать кальки, а эта самая подходящая.
Может, объявление принадлежности? (хотя это далеко уводит от буквальной кальки)

D>>unit type -> пустой тип (единичный тип)

D>>Тут сам не определился. Я ещё согласен с переводом , unit expression -> единичное выражение, хотя здесь unit имеет оттенок единственное (собственно unit от того, что выражение ( ) — единственное в этом типе). Но что его тип (unit type), переводится как единичный тип По смыслу он эквивалентен void в C-подобных языках
Т>Void означает отсутсвие типа. А unit всё же полноценный тип. Может, "единичный" и не совсем хорошо, но политкорректное "одноэлементный" .

The Haskell 98 Report
3.9

The unit expression () has type () (see Section 4.1.2). It is the only member of that type apart from _|_, and can be thought of as the "nullary tuple" (see Section 6.1.5).

Тип кортежа нулевого размера?
Re[3]: Перевод терминов Хаскелла
От: Трурль  
Дата: 07.12.06 14:09
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Точечный — перекликается с теорией категорий.

Если хочецца теории категорий, то терминальный.
Re[3]: Перевод терминов Хаскелла
От: Трурль  
Дата: 07.12.06 14:20
Оценка: +1
Здравствуйте, deniok, Вы писали:

D>Тип кортежа нулевого размера?

Для () подойдет, но ведь
data Unit = Unit

тоже будет unit type, а его ведь так не назовешь.
Re[2]: Перевод терминов Хаскелла
От: Кодт Россия  
Дата: 07.12.06 14:37
Оценка:
Здравствуйте, Трурль, Вы писали:

D>>guards -> стражи (охрана)

Т>Мне больше нравиться "охрана", а ещё больше "предохранитель" (как в переводе "Дисциплины программирования").

Причём это именно пред-охранитель, предусловие данной ветки!

D>>uncurried function -> анкаррированная функция

D>>Как-то приставка не очень? Но некаррированная менее точно выражает смысл.
Т>А какой смысл подразумевается? Очень часто uncurried function озачает именно "функция в первозданной форме".

А если изначально функция имела тип a->(b->c), т.е. возвращала функцию? Как-то странно говорить о первозданности в этом случае.

D>>instance declaration -> объявление представителя (объявление экземпляра)

D>>Экземпляр наводит на мысль об объекте в памяти (хотя это, возможно, ООП-наведённый образ ). Здесь же (в Хаскелле) речь идёт об объявлении типа представителем класса типа.
Т>Представитель класса — элемент, который представляет весь класс. Так что здесь речь вовсе не об этом. Скорее, объявляется принадлежность классу (или членство — кому больше нравится). "Объявление экземпляра" звучит несколько коряво, но у нас же принято делать кальки, а эта самая подходящая.

Экземпляр класса — как-то не очень. Может быть, всё-таки элемент? И всё равно коряво.
Объявляется не просто принадлежность к классу, а воплощение этой принадлежности (в т.ч. реализация перегруженных функций).

Кстати, перегрузка как приём ad-hoc-полиморфизма -> "полиморфизм времени компиляции".

D>>unit type -> пустой тип (единичный тип)

D>>Тут сам не определился. Я ещё согласен с переводом , unit expression -> единичное выражение, хотя здесь unit имеет оттенок единственное (собственно unit от того, что выражение ( ) — единственное в этом типе). Но что его тип (unit type), переводится как единичный тип По смыслу он эквивалентен void в C-подобных языках
Т>Void означает отсутсвие типа. А unit всё же полноценный тип. Может, "единичный" и не совсем хорошо, но политкорректное "одноэлементный" .

Вообще, одноэлементных типов можно нарожать сколько угодно:
data One = One
data Singular = BlackHole

Терминальный или пустой — более подходят по смыслу. Тем более, что синтаксически () это пустой кортеж.
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[3]: Перевод терминов Хаскелла
От: Трурль  
Дата: 07.12.06 15:03
Оценка:
Здравствуйте, Кодт, Вы писали:

К>А если изначально функция имела тип a->(b->c), т.е. возвращала функцию? Как-то странно говорить о первозданности в этом случае.

Обычно когда говорят "каррированная функция", подразумевают, что у нас есть функция нескольких аргументов, а мы её "каррируем".
А если она изначально типа a->(b->c), то и каррировать нечего.

К>Терминальный или пустой — более подходят по смыслу.

Пустой, мне кажется, означает "не содержащий элементов", то есть как раз инициальный.
Re[3]: Перевод терминов Хаскелла
От: palm mute  
Дата: 07.12.06 15:08
Оценка: +1
Здравствуйте, Кодт, Вы писали:

К>Кстати, перегрузка как приём ad-hoc-полиморфизма -> "полиморфизм времени компиляции".

Параметрический полиморфизм — тоже полиморфизм времени компиляции, однако.
Re[4]: Перевод терминов Хаскелла
От: Кодт Россия  
Дата: 07.12.06 16:00
Оценка:
Здравствуйте, Трурль, Вы писали:

К>>А если изначально функция имела тип a->(b->c), т.е. возвращала функцию? Как-то странно говорить о первозданности в этом случае.

Т>Обычно когда говорят "каррированная функция", подразумевают, что у нас есть функция нескольких аргументов, а мы её "каррируем".
Т>А если она изначально типа a->(b->c), то и каррировать нечего.

Однако операция uncurry над ней определена.
curry и uncurry — обратные друг к другу.
uc :: ((a,b)->c) -> ((a,b)->c)
uc = uncurry.curry
uc = id

cu :: (a->b->c)  -> (a->b->c)
cu = curry.uncurry
cu = id


К>>Терминальный или пустой — более подходят по смыслу.

Т>Пустой, мне кажется, означает "не содержащий элементов", то есть как раз инициальный.
А ещё означает "не несущий смысла". О! Порожний тип.
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[3]: Перевод терминов Хаскелла
От: deniok Россия  
Дата: 08.12.06 07:23
Оценка:
Здравствуйте, Кодт, Вы писали:

D>>>instance declaration -> объявление представителя (объявление экземпляра)

D>>>Экземпляр наводит на мысль об объекте в памяти (хотя это, возможно, ООП-наведённый образ ). Здесь же (в Хаскелле) речь идёт об объявлении типа представителем класса типа.
Т>>Представитель класса — элемент, который представляет весь класс. Так что здесь речь вовсе не об этом. Скорее, объявляется принадлежность классу (или членство — кому больше нравится). "Объявление экземпляра" звучит несколько коряво, но у нас же принято делать кальки, а эта самая подходящая.

К>Экземпляр класса — как-то не очень. Может быть, всё-таки элемент? И всё равно коряво.

К>Объявляется не просто принадлежность к классу, а воплощение этой принадлежности (в т.ч. реализация перегруженных функций).

О,
instance declaration -> объявление воплощения!
А
instance -> воплощение .
Правда звучит слишком возвышенно...

Тип Char, являясь воплощением класса Ord, бла-бла-бла.
Тип Char, являясь экземпляром класса Ord, бла-бла-бла.
Тип Char, являясь представителем класса Ord, бла-бла-бла.
Re[5]: Перевод терминов Хаскелла
От: R.K. Украина  
Дата: 02.04.07 19:49
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, Трурль, Вы писали:


К>>>Терминальный или пустой — более подходят по смыслу.

Т>>Пустой, мне кажется, означает "не содержащий элементов", то есть как раз инициальный.
К>А ещё означает "не несущий смысла". О! Порожний тип.

Тут и думать нечего NIL он и в Африке — Нил Пустота, нил-тип, нил-значение, в иерархии типов лиспа — универсальный потомок всех типов, отсутствие любого присутствия.
You aren't expected to absorb this
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.