Я просто написал эту функцию:Есть функция карты?
class function TGenerics.Map<TFrom, TTo>(const AEnumerable: IEnumerable<TFrom>;
const AConverter: TConstFunc<TFrom, TTo>): IList<TTo>;
var
L: IList<TTo>;
begin
L := TCollections.CreateList<TTo>;
AEnumerable.ForEach(
procedure(const AItem: TFrom)
begin
L.Add(AConverter(AItem));
end
);
Result := L;
end;
Это примерно эквивалентно Haskells map
(или fmap
, liftM
и т.д.).
Так что мне интересно, что-то подобное уже существует в Spring4D?
Это действительно странно, что он поддерживает 'Where' (фильтр Haskell'), но не 'Select' (Haskell' map') –
Просто боковое примечание. OmniThreadLibrary имеет параллельную версию аналогичного контура, который отображает TArray в TArray (http://www.thedelphigeek.com/2015/01/parallel-map.html). – gabr