GitPedia
logic-building

logic-building/functional-go

This library is inspired by functional programming - Clojure

30 Releases
Latest: 2y ago
go mod issuev1.0.0LatestPre-release
logic-buildinglogic-building·2y ago·November 15, 2023
GitHub

fix issues with higher versioning number

go mod issuever1.0.0Pre-release
logic-buildinglogic-building·2y ago·November 15, 2023
GitHub

add go mod file with new version series ver1.0.0 to fix go mod issue with some internal file use with higher version.

Method chain functionalityv8.14.0
logic-buildinglogic-building·5y ago·March 24, 2021
GitHub

Method chain functionality for Basic type as well as struct - Map, Filter, Sort, Distinct, Reverse, DropWhile, TakeWhile, Remove Example: ```go // Use MakeIntSlicePtr for pointer version r := fp.MakeIntSlice([]int{3, 2, 1}...). Filter(odd). Map(square). Sort() fmt.Println(r) // [1 9] func odd (num int) bool { return num % 2 != 0 } func square(num int) int { return num * num } ```

Optional Parameter for PMap to set number of Goroutines(worker)v8.13.1
logic-buildinglogic-building·5y ago·October 3, 2020
GitHub

Eg: PMapInt(squareInt, []int{v1, v2, v3}, Optional{FixedPool: 2, RandomOrder: true}) The default behavior of PMap: a. number of Goroutines == length of the list. b. Order is guaranteed

Generated Code for Struct has new functions - Distinct, Intersection, Set, Union, Difference, Superset, Subsetv8.13.0
logic-buildinglogic-building·5y ago·August 15, 2020
GitHub

New functions for struct - (Distinct, Intersection, Union, Difference, Superset, Subset, Set) compares each member of a struct with another struct in the list.

Disabled Distinct for user defined type, it will be enabled in futurev8.12.2
logic-buildinglogic-building·5y ago·August 5, 2020
GitHub
New Function - Equal<Type>sP, EqualMap<Type>, Distinct<Type>Pv8.12.0
logic-buildinglogic-building·5y ago·August 4, 2020
GitHub

New functions to compare slice and map. Equal<Type>sP : eg EqualIntsP, EqualFloats64P EqualMap<Type1><Type2>: eg. EqualMapIntP , EqualMapInt64Float64P New function to check if the slice is distinct Distinct<Type>P: eg. DistinctIntP Auto-generate code for struct has options to include the only list - //go:generate gofp -destination fp.go -pkg employee -type "Employee" -only "Distinct, DistinctPtr, DistinctP" A full list of value for option `only` is provided in README

New Function - Dedupe<Type>v8.11.0
logic-buildinglogic-building·5y ago·July 24, 2020
GitHub

Added function - Dedupe<Type> Auto-generated code for sorting for struct takes pointer types.

Auto-generated code for struct has set and sort related functions as default.v8.10.1
logic-buildinglogic-building·5y ago·July 12, 2020
GitHub

Auto-generated code for struct has set and sort related functions as default. Options -set or -sort will override the default behavior of auto-generation of functions related to set & sort. Added new predicate functions: a. Zero<Type>P b. Neg<Type>P c. Pos<Type>P d. Even<Type>P e. Odd<Type>P

Auto-generated code for struct has set and sort related functions as default.v8.10.0
logic-buildinglogic-building·5y ago·July 11, 2020
GitHub

Auto-generated code for struct has set and sort related functions as default. Options -set or -sort will override the default behavior of auto-generation of functions related to set & sort. Added new predicate functions: a. Zero<Type>P b. Neg<Type>P c. Pos<Type>P d. Even<Type>P e. Odd<Type>P

New option -set to generate set functions for structv8.9.0
logic-buildinglogic-building·5y ago·June 22, 2020
GitHub

1. Added standard set functions: Union, Intersection, Difference, Set, Superset, Subset. 2. Added option -set to generate set functions- Union, Intersection, Difference, Set, Superset, Subset for struct. eg. //go:generate gofp -destination fp.go -pkg employee -type "Employee" -set "Employee:Name:string" New Generated Functions will be 1. SetEmployeeByName 2. UnionEmployeeBytName 3. IntersectionEmployeeByName 4. DifferenceEmployeeByName 5. SupersetEmployeeByName 6. SubsetEmployeeByName

New option `-sort` to auto generate sorting methods for structv8.8.0
logic-buildinglogic-building·6y ago·June 2, 2020
GitHub

Auto-generated code has a new option to generate sorting methods for struct: --------------------------------------- -sort "Employee:Name, Employee:Salary" eg: //go:generate gofp -destination fp.go -pkg employee -type "Employee" -sort "Employee:Name" type Employee struct { Id int Name string Salary float64 } Generated sorting functions: 1. SortEmployeeByName 2. SortEmployeeByNameDesc 3. SortEmployeeByNamePtr 4. SortEmployeeByNameDescPtr New Standard functions: ------------------------- Reverse<TYPE>: To reverse list Ex. ReverseInt Keys<Type>: return keys of the map Take<Type>: return n items from the list

Minor change - removed go.mod filev8.7.2
logic-buildinglogic-building·6y ago·May 22, 2020
GitHub
Minor update in readmev8.7.1
logic-buildinglogic-building·6y ago·May 22, 2020
GitHub
New function - PMap<INPUT_TYPE><OUTPUT_TYPE>PtrErrv8.7.0
logic-buildinglogic-building·6y ago·May 22, 2020
GitHub

This new function takes a different type of input and returns a different type of output. Eg. r, err := PMapStrIntErr(fun1, []string{"ram", "jesus"}) func fun1(v string) (int, error) { // some logic return 0, nil } Auto-generated code for user-defined type has this functionality too. Eg. r, err := PMapStrEmployeeErr(fun1, []string{"ram", "jesus"})

PMap supports error handlingv8.6.0
logic-buildinglogic-building·6y ago·May 19, 2020
GitHub

Added new functionality for PMap to support error handling.

New functionality supports error handlingv8.5.0
logic-buildinglogic-building·6y ago·May 2, 2020
GitHub

Now there are four variants of functions: 1. MapInt: Returns new List (Old) 2. MapIntPtr: Returns new list with a pointer type (Old) 3. MapIntErr : Returns new list and error (New) 4. MapIntPtrErr: Returns new list with pointer type and error(New) All four variants are supported in the following functions: Map Filter FilterMap DropWhile Every Remove Reduce Some TakeWhile

Pointer function for user defined data type in auto-generate codev8.4.0
logic-buildinglogic-building·6y ago·April 1, 2020
GitHub

Added function to support pointer for the user-defined data type in auto-generate code. "Ptr" is appended in each new function. Available functions: Map -> MapInt, MapStrInt, MapIntPtr ... Filter -> FilterInt, FilterStrInt, FilterIntPtr ... FilterMap -> FilterMapInt, FilterMapIntStr, FilterMapIntPtr ... PMap -> PMapInt, PMapIntStr, PMapInt, PMapIntPtr ... Distinct Drop DropWhile Every Max Min MinMax Range Remove Reduce Rest Some TakeWhile Merge Zip Auto-generated functions for the user-defined data type for a different combination of input and output Map, MapPtr Filter, FilterPtr FilterMap, FilterMapPtr PMap, PMapPtr Reduce, ReducePtr Remove, RemovePtr Some, SomePtr TakeWhile, TakeWhilePtr DropWhile, DropWhilePtr Every, EveryPtr Rest, RestPtr Merge, MergePtr Zip, ZipPtr

pointer functionv8.3.0
logic-buildinglogic-building·6y ago·March 30, 2020
GitHub

Added function to support pointer data type. Added Ptr at end of each function to call pointer data type. MapIntPtr... FilterMapPtr... . . . Available functions: Map -> MapInt, MapStrInt, MapIntPtr ... Filter -> FilterInt, FilterStrInt, FilterIntPtr ... FilterMap -> FilterMapInt, FilterMapIntStr, FilterMapIntPtr ... PMap -> PMapInt, PMapIntStr, PMapInt, PMapIntPtr ... Distinct Drop DropWhile Every Max Min MinMax Range Remove Reduce Rest Some TakeWhile Merge Zip Auto-generated functions for the user-defined data type for a different combination of input and output Map Filter, FilterPtr FilterMap Pmap Reduce Remove Some TakeWhile DropWhile Every Rest Merge Zip

Added function - Merge and Zipv8.2.0
logic-buildinglogic-building·7y ago·February 28, 2019
GitHub

Merge - Merges 2 maps and returns a new map Zip - Zip two lists and return a new map Available functions: Map -> MapInt, MapStrInt ... Filter -> FilterInt, FilterStrInt ... FilterMap -> FilterMapInt, FilterMapIntStr ... PMap -> PMapInt, PMapIntStr ... Distinct Drop DropWhile Every Max Min MinMax Range Remove Reduce Rest Some TakeWhile Merge Zip Auto generated functions for user defined data type for different combination of input and output Map Filter FilterMap Pmap Reduce Remove Some TakeWhile DropWhile Every Rest Merge Zip

Added functionality to take different combination of input type and output type for function map and filter for user defined data typev8.1.0
logic-buildinglogic-building·7y ago·February 16, 2019
GitHub

Map -> MapInt, MapStrInt ... Filter -> FilterInt, FilterStrInt ... FilterMap -> FilterMapInt, FilterMapIntStr ... PMap -> PMapInt, PMapIntStr ... Distinct Drop DropWhile Every Max Min MinMax Range Remove Reduce Rest Some TakeWhile Auto generated functions for user defined data type for different combination of input and output Map Filter FilterMap Pmap Reduce Remove Some TakeWhile DropWhile Every Rest

Renamed function Pmap -> PMap and added PMap for different combinations of input type and output typev8.0.0
logic-buildinglogic-building·7y ago·February 10, 2019
GitHub

Map -> MapInt, MapStrInt ... Filter -> FilterInt, FilterStrInt ... FilterMap -> FilterMapInt, FilterMapIntStr ... PMap -> PMapInt, PMapIntStr ... Distinct Drop DropWhile Every Max Min MinMax Range Remove Reduce Rest Some TakeWhile Auto generated functions for user defined data type Map Filter FilterMap Pmap Reduce Remove Some TakeWhile DropWhile Every Rest

Fixed issue with Hops in Range functionv7.1.2
logic-buildinglogic-building·7y ago·February 4, 2019
GitHub

Map Filter FilterMap Pmap Distinct Drop DropWhile Every Max Min MinMax Range Remove Reduce Rest Some TakeWhile Auto generated functions for user defined data type Map Filter FilterMap Pmap Reduce Remove Some TakeWhile DropWhile Every Rest

Fixed issue of not returning new slice by Distinct function.v7.1.1
logic-buildinglogic-building·7y ago·February 2, 2019
GitHub

Functions available for basic data types: Map Filter FilterMap Pmap Distinct Drop DropWhile Every Max Min MinMax Range Remove Reduce Rest Some TakeWhile Auto generated functions for user defined data type Map Filter FilterMap Pmap Reduce Remove Some TakeWhile DropWhile Every Rest

Added function rest and reducev7.1.0
logic-buildinglogic-building·7y ago·January 28, 2019
GitHub

Functions available for basic data types: 1. Map 2. Filter 3. FilterMap 4. Pmap 5. Distinct 6. Drop 7. DropWhile 8. Every 9. Max 10. Min 11. MinMax 12. Range 13. Remove 14. Reduce 15. Rest 16. Some 17. TakeWhile Auto generated functions for user defined data type 1. Map 2. Filter 3. FilterMap 4. Pmap 5. Reduce 6. Remove 7. Some 8. TakeWhile 9. DropWhile 10. Every 11. Rest

Most of the function's behavior is similar to Clojure Functions. This is a stable version.v7.0.0
logic-buildinglogic-building·7y ago·January 23, 2019
GitHub

Added function: Exists. Functions included in autogenerated code for user defined type - 1. Map 2. Filter 3. Some 4. Remove

Updated remove function as per Clojure and added functions DropWhile and TakeWhilev6.0.0
logic-buildinglogic-building·7y ago·January 21, 2019
GitHub
Added functions : Range and MinMax and changed few functions signaturev5.0
logic-buildinglogic-building·7y ago·January 16, 2019
GitHub
renamed package list-op -> fpv4.0
logic-buildinglogic-building·7y ago·January 10, 2019
GitHub
Modified function name NewSetInt -> NewIntv3.0
logic-buildinglogic-building·7y ago·December 31, 2018
GitHub