Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Delphi and Freepascal Libraries that implement higher-order functions like Map, Reduce and Filter version 1.02

11 views
Skip to first unread message

amin...@gmail.com

unread,
Jan 31, 2020, 10:38:18 AM1/31/20
to
Hello,


Delphi and Freepascal Libraries that implement higher-order functions like Map, Reduce and Filter version 1.02

I have ported it from Delphi to Freepascal and i have corrected some
bugs, and now i think it is stable and fast.


Authors: Amine Moulay Ramdane

Description:

Delphi and Freepascal Libraries that implement higher-order functions like: Map, Reduce and Filter.

Map: This is available in many functional programming languages. This takes as arguments a func function and a list of elements list, and returns a new list with func applied to each element of the list.

Reduce: This is also known as Fold. This requires a combining function, a starting point for a data structure, and possibly some default values to be used under certain conditions. The Reduce function proceeds to combine elements of the data structure using the injected function. This is used to perform operations on a set of values to get only one result (or a smaller set of values) that represents the reduction of that initial data. For example, the values 1, 2, and 3 can be reduced to the single value 6 using the SUM .

Filter: This requires a data structure and a filter condition. This returns all the elements in the structure that match the filter condition.

My Delphi library uses Delphi generics and anonymous methods to implement Map, Reduce and Filter.

My Freepascal library uses Freepascal generics and variants to implement Map, Reduce and Filter.

Please look at the Delphi demo inside the zip file called test_MapReduce.pas .

You can download them from:

https://sites.google.com/site/scalable68/delphi-library-that-implements-higher-order-functions-like-map-reduce-and-filter


Language: Delphi 2009+ and Freepascal 3.02+

Operating Systems: Windows, Mac OSX , Linux, iOS, Android



Thank you,
Amine Moulay Ramdane.

amin...@gmail.com

unread,
Jan 31, 2020, 10:53:32 AM1/31/20
to
I have also enhanced it in version 1.02, please look at the source code.
0 new messages