Lambda smalltalk:如何从集合中选择前n项

Lambda smalltalk:如何从集合中选择前n项,lambda,indexing,closures,smalltalk,pharo,Lambda,Indexing,Closures,Smalltalk,Pharo,我有一个集合c,我基本上想把集合分为两部分:前n个项分为一个列表,其余项分为另一个列表。显然,我可以使用do:,但是有更好的方法吗?您可以使用copyFrom:to: 例如: firstTen := myCollection copyFrom: 1 to: 10. 我不知道其他方言,但有以下有用的方法:first:last:allButFirst:allButLast: 因此,您可以执行以下操作: firstPart := c first: 10. secondPart := c allBut

我有一个集合c,我基本上想把集合分为两部分:前n个项分为一个列表,其余项分为另一个列表。显然,我可以使用do:,但是有更好的方法吗?

您可以使用
copyFrom:to:

例如:

firstTen := myCollection copyFrom: 1 to: 10.

我不知道其他方言,但有以下有用的方法:
first:
last:
allButFirst:
allButLast:

因此,您可以执行以下操作:

firstPart := c first: 10.
secondPart := c allButFirst: 10

您甚至可以使用:
firstTen:=myCollection-first:10