4
當給出了兩個Iterables
結合使用標準庫中有兩個Iterables - 或 - 圖多Iterables
val keys = newLinkedList('foo', 'bar', 'bla')
val vals = newLinkedList(42, 43, 44)
我想每個項目在這樣兩個列表關聯:
val Iterable<Pair<String, Integer>> expected
= newLinkedList('foo'->42, 'bar'->43, 'bla'->44)
OK,我可以通過手動迭代這兩個列表來完成。
在另一方面,這種氣味像一些地方
- 一些標準功能提供的Xtend或番石榴或
- 一些巧妙的技巧將做它在一行。
對於Python中的例子來說,這將是一件簡單的事情,因爲它們的map函數可以帶多個列表。
這怎麼能用最小代碼使用Xtend2 +來解決?
http://code.google.com/p/guava-libraries/wiki/IdeaGraveyard討論爲什麼番石榴不提供Pair類型。 – 2012-04-05 23:52:32
我認爲這種代碼在寫入命令式風格時實際上更具可讀性。 「過量使用番石榴的函數式編程語言會導致冗長,混亂,不可讀和低效率的代碼,這些是番石榴最容易(也是最常見)被濫用的部分,而且當你走向荒謬的長度時讓你的代碼「一行代碼」,Guava團隊流淚。「*(http://code.google.com/p/guava-libraries/wiki/FunctionalExplained) – 2012-04-06 08:18:38
@LouisWasserman:請注意,問題基本上是關於Xtend,一種功能性語言,內部使用番石榴。 IN Xtend you _have_'Pair'嵌入到語言中。這就是'x-> y'操作符所做的。所以我認爲番石榴的哲學不適用於這種情況。 – 2012-04-06 09:09:59