Comments 39
ОМГ как можно «functor» прочитать как функтор?
-28
фанктер?)
+3
И? А слово «функция» вы по-русски тоже говорите «фанкшион»?
+6
А вы функшион?
Ненадо путать слово «функция», которое нормально переводится с английского, с термином, у которого нет однозначного перевода в одно слово, следовательно используем термин с точным английским произношением фанктор (и произносить, конечно, желательно на английский манер)
Ненадо путать слово «функция», которое нормально переводится с английского, с термином, у которого нет однозначного перевода в одно слово, следовательно используем термин с точным английским произношением фанктор (и произносить, конечно, желательно на английский манер)
-22
Вобщем-то есть вполне сложивщийся, устоявшийся как в математике, так и в программировании русский термин — функтор. Я не америку открываю и не сам это придумал. Как связано произношение в английском языке и русский перевод? Почему слово произносится слово фУнкция, но однокоренное с ним слов фАнкчер?
+16
лучше чтоб по корню слова смысл был понятен, здесь оно важнее. Без смысла слово мертвое)
+4
Нет. Если бы вы прочитали статьи в википедии, то уже знали бы, что термин пришёл из философии и имеет немецкое, а не английское происхождение.
+6
Вы один из тех, кто считает, что все языки произошли от английского и должны пользоваться правилами английского языка? Что-нибудь про латинский слышали? Древнее римляне тоже произносили слово functio с английским акцентом?
Вы еще скажите что слово sputnik надо читать как спатник.
Вы еще скажите что слово sputnik надо читать как спатник.
+3
По-моему Вы, кто вступил со мной в дискуссию, из тех людей, которые джаву называют явой.
Пожалуйста, называйте как хотите, не мне же за Вас краснеть
Пожалуйста, называйте как хотите, не мне же за Вас краснеть
-21
- Букур И., Деляну А. Введение в теорию категорий и функторов. М.: Мир, 1972
- Двойственность Экмана–Хилтона и теория функторов в категории топологических пространств
Д. Б. Фукс
УМН, 21:2(128) (1966)
И т.д.
Кроме Qt есть ещё много прекрасного, разного. ;)
+8
Я в курсе :)
Когда с STL работал, говорил именно так, как правильно произносится, а минусовать мне за чью-то давнишнюю ошибку перевода нехорошо!
Честно, не знал, что в большом количестве литературы перевели как функтор, моя оплошность, однако это не делает предложенный мной вариант произношения неверным!
Когда с STL работал, говорил именно так, как правильно произносится, а минусовать мне за чью-то давнишнюю ошибку перевода нехорошо!
Честно, не знал, что в большом количестве литературы перевели как функтор, моя оплошность, однако это не делает предложенный мной вариант произношения неверным!
-11
Вы совершенно правы, «functor» читается как «фанктор», но «функтор» читается как «функтор», таков уж принятый термин.
Кроме того, «функтор» гораздо благозвучнее.
Кроме того, «функтор» гораздо благозвучнее.
+6
Почему это «функтор» — ошибка перевода? Вам уже указали на то, что слова «функтор» и «функция» — однокоренные, соответственно никаких ваших фанктеров быть не может. Вы, конечно, молодец, что интересуетесь другими языками, но и свой забывать не стоит. Из-за «фанктеров» в языке появляются уродливые слова-кальки без языковой истории.
+3
Подтяните свои знания математики чтоб нам за вас не краснеть.
+8
< Любое мое сообщение >
Минусуйте на здоровье!
Минусуйте на здоровье!
-11
плиз донт эпплай ë инкомплит нолидж ов инглиш ту рашн сайнтифик вокэбъюлари. итс джат рон.
+12
Мне как математику очень огорчительно видеть такую картину. Использование устоявшихся понятий в отличном от общепринятого смысле — зло, а люди, которые подменяют наименования, совершают акт вредительства.
+7
В ML и Хаскеле функторы не далеки от математического собрата. Жаль только что именно определение С++ наиболее популярно.
+3
Мне как математику крайне непонятно до сих пор, как правильно говорить:
«ко'мплексные» или «компле'ксные» (слово встречается не только для чисел),
«ре'шать» или «реша'ть».
Я о том, что среди математиков столько диалектов есть и многие даже гордятся своим произношением, также как и написанием греческого алфавита.
В общем, главное, чтобы человек был хороший :)
«ко'мплексные» или «компле'ксные» (слово встречается не только для чисел),
«ре'шать» или «реша'ть».
Я о том, что среди математиков столько диалектов есть и многие даже гордятся своим произношением, также как и написанием греческого алфавита.
В общем, главное, чтобы человек был хороший :)
+1
Стоит заметить, что в Functor в Haskell — это эндофунктор.
+2
Любопытная мысль. Я так понимаю, что вы подразумеваете все типы как объекты и функции как морфизмы. Тогда действительно получается эндофунктор. Но разве нельзя выделить пару полных подкатегорий и определить функтор между ними?
0
Так ведь
обязан работать на любых типах и морфизмах.
В
fmap : (a -> b) -> f a -> f b
обязан работать на любых типах и морфизмах.
В
Control.Category
есть класс Category
, так что должно было быть так:fmap : g a b -> h (f a) (f b)
0
Ну я не про fmap конкретно говорил, я имел ввиду что в хаскеле наверно можно и не только функтор с такой сигнатурой объявить. Можно например попробовать рассмотреть подкатегорию списков и еще какую-нибудь, скажем Maybe и объявить функтор между ними.
Получится функтор который объекты одной подкатегории (maybe) отображает в объекты другой (списки) и морфизмы одной (Maybe a -> Maybe b) в морфизмы другой ([a] -> [b]). Что-то вроде
class MaybeListFunctor where
f :: Maybe a -> [a]
g :: (Maybe a -> Maybe b) -> [a] -> [b]
чем не функтор?
Простите если где ошибки, я в хаскеле не силен. А за Control.Category отдельное спасибо :) Покопаюсь на досуге
Получится функтор который объекты одной подкатегории (maybe) отображает в объекты другой (списки) и морфизмы одной (Maybe a -> Maybe b) в морфизмы другой ([a] -> [b]). Что-то вроде
class MaybeListFunctor where
f :: Maybe a -> [a]
g :: (Maybe a -> Maybe b) -> [a] -> [b]
чем не функтор?
Простите если где ошибки, я в хаскеле не силен. А за Control.Category отдельное спасибо :) Покопаюсь на досуге
+2
Таким образом, конечно, можно.
Кстати, если data-accessor сделать инстансом
:)
Кстати, если data-accessor сделать инстансом
Control.Category
, то можно будет писать(tail.head.second ^= 12) [('x', 125), ('a', 11)]
:)
+1
В Haskell все функторы суть эндофункторы категории Hask, за пределы которой выйти нельзя. В частности именно поэтому в Prelude должно быть отношение Functor => Monad.
Что касается выделения подкатегорий… в принципе можно сделать что-то подобное с помощью Control.Category, но это будет уже совсем не обычных хаскельный функтор.
Что касается выделения подкатегорий… в принципе можно сделать что-то подобное с помощью Control.Category, но это будет уже совсем не обычных хаскельный функтор.
+1
Я выше написал что имел ввиду :) Понятно что выйти за пределы типов хаскеля нельзя и понятно почему Functor объявлен именно так. Меня просто заинтересовала мысль про эндофунктор, я об этом как-то не задумывался никогда (да собственно у меня опыта с хаскелем почти 0, поэтому я о нем мало думаю). Просто подумал, что можно ведь не только функтор с такой сигнатурой объявить. Да и не любой эндофунктор в хаскеле можно под эту сигнатуру подогнать. Это я просто так мыслю вслух, не обращайте внимания :)
0
Хорошая статья. Впрочем, про функторы в Haskell можно рассказать ещё много чего :) самое удобное лично для меня представление — это функтор как механизм спуска по правой ветке дерева типов
+3
Фига себе функторы в Прологе! Вот так пишешь-пишешь статьи , а толку (
Мне кажется это надо срочно подправить.
Функтор в Прологе это синоним терм, никаких больше значений он не имеет!
Стандартный предикат functor/2 (из пункта 2), это предикат с названием 'functor'/2.
Пример likes некорректен, потому что это предикат. В Прологе существует возможность функтор, вызывать как предикат типа:
likes(X) :- X.
Принимается терм, а вызывается уже предикат. Но это большая разница, так как в исходном Прологе это запрещено (как рефлексия в C++, хочется — нету, но кое-где появляется), так как такое использование термов ведет логикам второго порядка, а изначально Пролог — это хорновские дизъюнкты логики 1-го порядка.
Напишу в послесловие, откуда появились функторы в Прологе и что они означают. На самом деле понятие функторов в Прологе наверное самое правильное, чем во всех остальных языках, так как оно сложилось еще в 30-е годы в математической логике.
В математике часто встречаются определения: «для любого X существует Y», по сути дела это и есть функциональная зависимость. Так у этих функциональных зависимостей есть имя или его можно придумать, то договорились о краткой записи: plus(X, Y) — «для любого X, Y существует Z» и далее каким условиям удовлетворяет или в каких отношениях состоит. Благодаря, этому сокращению можно убрать все кванторы, кванторы существования заменяются функторами (отличия от функции теоритически нету, так как любому функтору можно поставить в соотвествию функцию, функцией чаще называют то, что эффективно вычислимо), а кванторы общности просто опускаются и остаются одни переменные.
Мне кажется это надо срочно подправить.
Функтор в Прологе это синоним терм, никаких больше значений он не имеет!
Стандартный предикат functor/2 (из пункта 2), это предикат с названием 'functor'/2.
Пример likes некорректен, потому что это предикат. В Прологе существует возможность функтор, вызывать как предикат типа:
likes(X) :- X.
Принимается терм, а вызывается уже предикат. Но это большая разница, так как в исходном Прологе это запрещено (как рефлексия в C++, хочется — нету, но кое-где появляется), так как такое использование термов ведет логикам второго порядка, а изначально Пролог — это хорновские дизъюнкты логики 1-го порядка.
Напишу в послесловие, откуда появились функторы в Прологе и что они означают. На самом деле понятие функторов в Прологе наверное самое правильное, чем во всех остальных языках, так как оно сложилось еще в 30-е годы в математической логике.
В математике часто встречаются определения: «для любого X существует Y», по сути дела это и есть функциональная зависимость. Так у этих функциональных зависимостей есть имя или его можно придумать, то договорились о краткой записи: plus(X, Y) — «для любого X, Y существует Z» и далее каким условиям удовлетворяет или в каких отношениях состоит. Благодаря, этому сокращению можно убрать все кванторы, кванторы существования заменяются функторами (отличия от функции теоритически нету, так как любому функтору можно поставить в соотвествию функцию, функцией чаще называют то, что эффективно вычислимо), а кванторы общности просто опускаются и остаются одни переменные.
+1
Функторы в C++ являются сокращением от «функциональные объекты».Что-то я не вижу, как тут сокращение получилось.
Насколько я помню, всё было немного иначе.
До С++ функторы появились в С, и там это было сокращение-гармошка (portmanteau) от «FUNCtion poinTER» (с поправкой на e/o, но это хотя бы какой-то смысл имеет, в отличие от «object»). Потом в С++ это понятие расширили на любое значение, которое можно вызывать как функцию.
0
Sign up to leave a comment.
Функторы в языках программирования