几个生僻的函数式编程的术语,讨论下该怎么翻译

97 views
Skip to first unread message

Atry

unread,
Sep 19, 2011, 11:00:17 AM9/19/11
to TopLanguange, turin...@googlegroups.com
Continuation
云风早期把Coroutine翻译为“协同例程”,现在通常简单译为“协程”,已经获得中文技术圈普遍承认。Continuation比Coroutine功能更强,目前中文技术圈普遍不翻译这个词,直接写英文。

Monad
Monad也跟Continuation一样,一般人都不翻译,直接写英文。

List Comprehension
这东西有点类似于把一个容器映射成另一个容器,我翻译维基百科http://zh.wikipedia.org/wiki/Scala的时候译为“顺序容器的推导式”,但还是想要用一个专有名词来翻译会更好。

Zhangming Niu

unread,
Sep 19, 2011, 11:33:24 AM9/19/11
to pon...@googlegroups.com
translations make vocabularies hard to understand,
still remember the translations of bit and byte, so, why translate

2011/9/19 Atry <pop....@gmail.com>



--
--------------------------------------------------------------------

Zhangming Niu

I.T consultant at Ericsson AB, Sweden



Zoom.Quiet

unread,
Sep 19, 2011, 11:59:20 AM9/19/11
to turin...@googlegroups.com, TopLanguange
在 2011年9月19日 下午11:00,Atry <pop....@gmail.com> 写道:
> Continuation
> 云风早期把Coroutine翻译为“协同例程”,现在通常简单译为“协程”,已经获得中文技术圈普遍承认。Continuation比Coroutine功能更强,目前中文技术圈普遍不翻译这个词,直接写英文。

- 不翻译的话,和 Coroutine 就分别不出了
- 其实是异步编程支持,表面上看程序没有停
- 可以翻译为"纤程" ?

> Monad
> Monad也跟Continuation一样,一般人都不翻译,直接写英文。

- 这个包含太多含义,中文没有对应的实体可以联想,好在发音简单,别的语言也没有,所以,可以直接用原文


> List Comprehension
> 这东西有点类似于把一个容器映射成另一个容器,我翻译维基百科http://zh.wikipedia.org/wiki/Scala的时候译为“顺序容器的推导式”,但还是想要用一个专有名词来翻译会更好。
>

Python 里统一叫这个是"列表推导式"了


--
人生苦短, Pythonic! 冗余不做,日子甭过!备份不做,十恶不赦!
俺: http://about.me/zoom.quiet
文字协议: http://creativecommons.org/licenses/by-sa/2.5/cn/

Atry

unread,
Sep 19, 2011, 12:25:28 PM9/19/11
to pon...@googlegroups.com, turin...@googlegroups.com
在 2011年9月19日 下午11:59,Zoom.Quiet <zoom....@gmail.com>写道:
- 不翻译的话,和 Coroutine 就分别不出了
   - 其实是异步编程支持,表面上看程序没有停
   - 可以翻译为"纤程" ?
纤程一般用作Fiber的翻译

Shuo Chen

unread,
Sep 19, 2011, 12:51:08 PM9/19/11
to TopLanguage
continuation 可以翻译为"续程"

On Sep 19, 11:00 pm, Atry <pop.a...@gmail.com> wrote:
> Continuation

> 云风早期把Coroutine翻译为"协同例程",现在通常简单译为"协程",已经获得中文技术圈普遍承认。Continuation比Coroutine功能 更强,目前中文技术圈普遍不翻译这个词,直接写英文。


>
> Monad
> Monad也跟Continuation一样,一般人都不翻译,直接写英文。
>
> List Comprehension
> 这东西有点类似于把一个容器映射成另一个容器,我翻译维基百科http://zh.wikipedia.org/wiki/Scala

> 的时候译为"顺序容器的推导式",但还是想要用一个专有名词来翻译会更好。

qiaojie

unread,
Sep 19, 2011, 12:53:22 PM9/19/11
to pon...@googlegroups.com
Continuation 延续执行体
Continuation是一种存放执行状态和执行点的数据结构,以用于后续继续运行,因此我意译成延续执行体。

Monad  单子
这个词是个抽象的数学概念,在我们熟悉的初等数学里不会接触到,所以比较陌生。但实际上跟function,operator之类的翻译一样,直接用数学领域的译法应该没问题。

List Comprehension
这个概念不太熟悉,翻译成列表推导式应该没什么问题吧。


一家之言,欢迎拍砖。



2011/9/19 Atry <pop....@gmail.com>

Xinyu LIU

unread,
Sep 19, 2011, 9:28:29 PM9/19/11
to pon...@googlegroups.com
如果Monad翻译后,那么如下的怎么办?
Monadic?
Monoid
还有更重要的几个:
Lifting
Functor (注:和C++的functor完全是两个概念)
另外Arrow也不好翻译
以及Fold(规约?)



2011/9/20 qiaojie <qia...@gmail.com>



--
Larry, LIU Xinyu
https://sites.google.com/site/algoxy/
https://github.com/liuxinyu95/AlgoXY

qiaojie

unread,
Sep 19, 2011, 11:24:47 PM9/19/11
to pon...@googlegroups.com
这有什么不好办的,Monadic, Monoid在数学上都有对应的翻译。


2011/9/20 Xinyu LIU <liuxi...@gmail.com>

Xinyu LIU

unread,
Sep 20, 2011, 1:39:10 AM9/20/11
to pon...@googlegroups.com
correct me if i am wrong.

Monadic在数学(确切的说是逻辑学)上译作:一元,如一元二阶逻辑。你觉得这和Functional Programming中指的是一个意思么?
Monoid在数学(群论)中译作“么半范畴”,这个和FP是指一个东西么?

2011/9/20 qiaojie <qia...@gmail.com>

Atry

unread,
Sep 20, 2011, 2:24:19 AM9/20/11
to pon...@googlegroups.com, turin...@googlegroups.com
 Fold翻译成“归并”如何?

在 2011年9月20日 上午9:28,Xinyu LIU <liuxi...@gmail.com>写道:
以及Fold(规约?)

qiaojie

unread,
Sep 20, 2011, 2:31:18 AM9/20/11
to pon...@googlegroups.com
Monoid在群论中译作幺半群,Haskell中引入Monoid可能是因为两者具有相似的数学性质。如果你没有群论的数学背景,看到Monoid这个词,从字面上也不会得到任何有用的信息,反之翻译成幺半群也不会损失什么信息。同样道理,数学上的function和计算机领域里的function也不完全是同一个概念,但是我们都接受把function翻译成函数,而不是子程序、函数程序之类的翻译。


2011/9/20 Xinyu LIU <liuxi...@gmail.com>

Zoom.Quiet

unread,
Sep 20, 2011, 2:53:51 AM9/20/11
to pon...@googlegroups.com
在 2011年9月20日 下午2:31,qiaojie <qia...@gmail.com> 写道:
> Monoid在群论中译作幺半群,Haskell中引入Monoid可能是因为两者具有相似的数学性质。如果你没有群论的数学背景,看到Monoid这个词,从字面上也不会得到任何有用的信息,反之翻译成幺半群也不会损失什么信息。同样道理,数学上的function和计算机领域里的function也不完全是同一个概念,但是我们都接受把function翻译成函数,而不是子程序、函数程序之类的翻译。
>

所以台湾方面一开始就用 函式而不是函数来和数学概念进行区分的哪,,,

> 2011/9/20 Xinyu LIU <liuxi...@gmail.com>
>>
>> correct me if i am wrong.
>>
>> Monadic在数学(确切的说是逻辑学)上译作:一元,如一元二阶逻辑。你觉得这和Functional Programming中指的是一个意思么?
>> Monoid在数学(群论)中译作“么半范畴”,这个和FP是指一个东西么?
>>
>> 2011/9/20 qiaojie <qia...@gmail.com>
>>>
>>> 这有什么不好办的,Monadic, Monoid在数学上都有对应的翻译。
>>>
>>> 2011/9/20 Xinyu LIU <liuxi...@gmail.com>
>>>>
>>>> 如果Monad翻译后,那么如下的怎么办?
>>>> Monadic?
>>>> Monoid
>>>> 还有更重要的几个:
>>>> Lifting
>>>> Functor (注:和C++的functor完全是两个概念)
>>>> 另外Arrow也不好翻译
>>>> 以及Fold(规约?)

这得吼一下 Albert Lee 已经完成了一个大部头的 Haskell 图书翻译,最好和将出版的统一起来

>>>>
>>>>
>>>>
>>>> 2011/9/20 qiaojie <qia...@gmail.com>
>>>>>
>>>>> Continuation 延续执行体
>>>>> Continuation是一种存放执行状态和执行点的数据结构,以用于后续继续运行,因此我意译成延续执行体。
>>>>> Monad  单子
>>>>>
>>>>> 这个词是个抽象的数学概念,在我们熟悉的初等数学里不会接触到,所以比较陌生。但实际上跟function,operator之类的翻译一样,直接用数学领域的译法应该没问题。
>>>>> List Comprehension
>>>>> 这个概念不太熟悉,翻译成列表推导式应该没什么问题吧。
>>>>>
>>>>> 一家之言,欢迎拍砖。
>>>>>
>>>>>
>>>>> 2011/9/19 Atry <pop....@gmail.com>
>>>>>>
>>>>>> Continuation
>>>>>>
>>>>>> 云风早期把Coroutine翻译为“协同例程”,现在通常简单译为“协程”,已经获得中文技术圈普遍承认。Continuation比Coroutine功能更强,目前中文技术圈普遍不翻译这个词,直接写英文。
>>>>>> Monad
>>>>>> Monad也跟Continuation一样,一般人都不翻译,直接写英文。
>>>>>> List Comprehension
>>>>>>
>>>>>> 这东西有点类似于把一个容器映射成另一个容器,我翻译维基百科http://zh.wikipedia.org/wiki/Scala的时候译为“顺序容器的推导式”,但还是想要用一个专有名词来翻译会更好。
>>>>
>>>>
>>>>
>>>> --
>>>> Larry, LIU Xinyu
>>>> https://sites.google.com/site/algoxy/
>>>> https://github.com/liuxinyu95/AlgoXY
>>>>
>>>
>>
>>
>>
>> --
>> Larry, LIU Xinyu
>> https://sites.google.com/site/algoxy/
>> https://github.com/liuxinyu95/AlgoXY
>>
>
>

--

qiaojie

unread,
Sep 20, 2011, 3:06:54 AM9/20/11
to pon...@googlegroups.com
2011/9/20 Zoom.Quiet <zoom....@gmail.com>

在 2011年9月20日 下午2:31,qiaojie <qia...@gmail.com> 写道:
> Monoid在群论中译作幺半群,Haskell中引入Monoid可能是因为两者具有相似的数学性质。如果你没有群论的数学背景,看到Monoid这个词,从字面上也不会得到任何有用的信息,反之翻译成幺半群也不会损失什么信息。同样道理,数学上的function和计算机领域里的function也不完全是同一个概念,但是我们都接受把function翻译成函数,而不是子程序、函数程序之类的翻译。
>

所以台湾方面一开始就用 函式而不是函数来和数学概念进行区分的哪,,,



问题是这两个概念在英文里并不区分,为什么一定要在中文里进行区分呢?

Atry

unread,
Sep 20, 2011, 3:18:49 AM9/20/11
to TopLanguange
维基百科上说,fold有时也被称为reduce. http://en.wikipedia.org/wiki/Fold_(higher-order_function)

所以fold和reduce都用相同的翻译似乎也可以

在 2011年9月20日 下午2:51,Zang MingJie <zealo...@gmail.com>写道:
把fold理解为归并就大错特错了!

fold做的不仅仅是把一个列表收束成一项, fold能做的事情太多了, 比如reverse就是用fold实现的.
fold本质是一个变换, transform. 是一种比map功能更强大的变换, 比如把list转换成tree/set/heap等等
还有pair-fold, 比fold更强大的变化

应该翻译成归并的操作是reduce

--
您收到此信息是由于您订阅了 图灵公司(www.turingbook.com)在Google上的“图灵俱乐部”论坛。
要在此论坛发帖,请发电子邮件到 turin...@googlegroups.com
要退订此论坛,请发邮件至 turingbook-...@googlegroups.com
更多选项,请通过 http://groups.google.com/group/turingbook?hl=zh-CN 访问该论坛
要了解更多图灵公司出版的新书和其他动态,请访问www.turingbook.com

杨欣

unread,
Sep 20, 2011, 5:56:31 AM9/20/11
to pon...@googlegroups.com
我比较喜欢knuth的方式。比如说有一个叫tex的单词,这么怎么翻译啦,我个人比较喜欢的一种方式是标出这个单词的发音,然后介绍历史就ok了,没有必要具体怎么翻译出中文。
--
_______杨欣_______

Reply all
Reply to author
Forward
0 new messages