jcouyang / functional-javascript

DEPRECATED: moved to https://github.com/jcouyang/clojure-flavored-javascript
39 stars 7 forks source link

chapter 1 revise and :uk: #3

Open jcouyang opened 10 years ago

jcouyang commented 10 years ago

:uk:lize chapter 1 - lambda, revise and fix typo by the way

scozv commented 10 years ago

I'll pick up chapter 1 to translate.

jcouyang commented 10 years ago

:+1: cool, u can put anything want to discuss here about chapter 1 :smile:

scozv commented 10 years ago

hi, 第一章基本翻译好了,有几个问题:

README.md

  1. lambda的定义,我没有想到合适的翻译,英文版直接从wikipedia上引用过来吗?
  2. “匿名函数不是原本的 lambda 算子”,算子这个概念我不是很熟悉,翻译成“operator”?

anonymous_function.md

  1. “因为并没有期待值”,这句我不是很理解
  2. “因此 function()则是打印出来的 function 表达式穿件的匿名函数.”,“穿件”是不是一个typo错误,你想表达“传进来”?

arror_funcion.md

  1. " 只是少了functionreturn 以及 block, 不是吗? 如果觉得差不多, 因为你看惯了 JavaScript 的匿名函数, 你的大脑编译器自动的忽略了,因为他们不需要显示的存在." 这一段,我有些不太理解,你是想说觉得两种写法差不多的话,是一件好事,表明我们已经习惯了函数式的写法。或者你想表达:觉得两种写法差不多是一件坏事,我们应该区别对待两种写法?
  2. “确实是 JavaScript 的一个 bug”,this的问题,是一个bug吗?
jcouyang commented 10 years ago

README

  1. 大意就是所有的运算都能化简成 lambda 运算
  2. 英文叫 lambda calculus, 可能是我中文叫 lambda 算子不合适,大概这个意思,就是 lambda 运算。

anonymous function

  1. 没有期待返回值,就是statement是不需要返回的, 只有 expression 有值
  2. 是 typo(后面可能还有很多 typo 不好意思)

arrow function

  1. 我意思是如果觉得看 function block 看习惯了,说明你习惯了 javascript 的 lambda 的复杂写法, 但这是完全是没有必要的,因为 lambda 只是一个简单的映射,箭头的方式更容易理解。
  2. 我听过 mozilla 的研究员讲过一个 session 说这其实是 bug, 他们终于制定了 arrow function 来修正了这个 bug, 因为按正常的 lambda 来说, 也不应该有 this, this 是面向对象的东西。 MDN 也提及 this 是一个 issue
scozv commented 10 years ago

第一章的翻译根据你的回答,更新了一些句子。几个问题:

README

  1. lambda定义那段,从markdown看,你的中文版似乎想引用一个超链接,但是你忘记放链接了。
  2. 随后的lambda calculus那一段,你将匿名函数和lambda算子区分开的原因是:匿名函数接受多个参数,lambda算子只接受一个参数。我的翻译是:

However, an anonymous function is not a lambda calculus, because an anonymous function may accept multiple parameters, whereas, the lambda calculus accepts only one parameter, like:

你的中文版没有这层意思“whereas, the lambda calculus accepts only one parameter”,加上去,是不是这句话的因果关系更加明显一些?

anonymous function

  1. 没有期待返回值,这一段,我翻译的版本调整了句子的前后顺序,试图将因果关系,递进关系表达地更加明显,可能还需要完善:

But why the error says: function statement requires a name. In JavaScript, there is another way to declare a function, that is using function statement. A statement requires a name. The code above is treated as function statement, because it returns nothing. Therefore, we got the error.

jcouyang commented 10 years ago

谢谢了,我 merge 的时候看看