English · PDF 288
小兔子 Foo Foo 蹦蹦跳跳穿过森林 抓起田鼠 在它们头上敲一下
这是一首流行的儿童诗,通常配有手部动作。
我们先定义一个对象来表示小兔子 Foo Foo:
foo_foo <- little_bunny()
然后为每个关键动词定义一个函数:hop()、scoop() 和 bop()。使用这个对象和这些动词,我们(至少)可以用四种方式在代码中重述这个故事:
我们将逐一介绍每种方法,展示代码并讨论其优缺点。
最简单的方法是将每个步骤保存为新对象:
foo_foo_1 <- hop(foo_foo, through = forest) foo_foo_2 <- scoop(foo_foo_1, up = field_mice) foo_foo_3 <- bop(foo_foo_2, on = head)
这种形式的主要缺点是它迫使你为每个中间元素命名。如果有自然的名称,这是个好主意,你应该这样做。但很多时候,就像这个例子一样,并没有自然的名称,你只能添加数字后缀来使名称唯一。这会导致两个问题:
每当我写这样的代码时,总会在某一行用错数字,然后花 10 分钟挠头,试图弄清楚代码出了什么问题。