https://github.com/goswinr/fsex
An F# extension and utility library
https://github.com/goswinr/fsex
fharp library utilities
Last synced: about 1 year ago
JSON representation
An F# extension and utility library
- Host: GitHub
- URL: https://github.com/goswinr/fsex
- Owner: goswinr
- License: mit
- Created: 2019-11-29T08:36:02.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2025-02-23T20:05:33.000Z (over 1 year ago)
- Last Synced: 2025-04-26T20:33:55.261Z (about 1 year ago)
- Topics: fharp, library, utilities
- Language: F#
- Homepage:
- Size: 2.93 MB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# FsEx
[](https://www.nuget.org/packages/FsEx/)

[](LICENSE)

FsEx is an FSharp extension and utility library mostly focused on collections and strings.
### It Includes:
- [A thin wrapper over the `ResizeArray` type called `Rarr`](https://www.fuget.org/packages/FsEx/0.14.1/lib/net6.0/FsEx.dll/FsEx/Rarr%601). It provides structural equality ,additional members and more detailed error messages when the List is used with out of bound indices.
- [A `Rarr` module](https://www.fuget.org/packages/FsEx/0.14.1/lib/net6.0/FsEx.dll/FsEx/RarrModule) that provides all the functions for `Rarr` that the `Array` module from `FSharp.Core` has. Including those for parallel computing.
- A thin wrapper over the generic `Dictionary` type called `Dict`. It provides additional members and more detailed error messages when a given Key is not found.
- An implementation of [defaultdict](https://docs.python.org/3/library/collections.html#collections.defaultdict) called `DefDict` , a dictionary that creates a key when its accessed but missing.
- [A comprehensive module](https://www.fuget.org/packages/FsEx/0.14.1/lib/net6.0/FsEx.dll/FsEx/StringModule) for working with `string`, including nice error messages.
- Useful extension members to existing collections like seq, array, Dictionary, StringBuilder.
- Computational Expressions for building `Rarr`, `strings`, and CSV-files. Like they exist for `seq`, `list` and `array` in `FSharp.Core`
- Pretty printing for collections
- and more ..
### License
[MIT](https://raw.githubusercontent.com/goswinr/FsEx/main/LICENSE.txt)
### Changelog
`0.16.0`
- add RequiresExplicitTypeArguments to Rarr.empty
`0.15.0`
- Printfn functions to find Fesh editor via Reflection
- fix Rarr AsReadOnly
- fix normalize str
`0.14.1`
- add Rarr.notExists
- add Rarr.prepend
- add String.containsIgnoreCase
- fix maybe monad
`0.13.2`
- add Rarr.pickBack
- add rotateUpTill
- add rotateDownTill
`0.13.1`
- print with a HighlightColor for a Regex in Seff
`0.13.0`
- move IO, Kernel32 and external Processes modules out to new package [FsEx.IO](https://github.com/goswinr/FsEx.IO)
`0.12.0`
- add >>! operator
- cleanup Rarr docstr
- add memoizeInDict
- add IList module to match Rarr module
- remove Rarr.createFromSeq
- add Seq.iterIndexed
- add Seq.repeat
- add FloatMathOperators module
`0.11.0`
- improve randomness of random color
- rename Dict and DefaultDict members Add and Set
- add getOrSetDefault to Dict
- add String.addPrefix String.addSuffix
- add Seq.tryFindDuplicate and Seq.duplicates
- rename Dict.setOnce to Dict.setIfKeyAbsent
- remove cmp
- Array.second, Array.last and similar functions
- better Error messages
- add IO.createDirectoriesOfFilePath
- better toNiceString
- add String.beforeOrInput, .afterOrInput and .betweenOrInput
- remove dependency on System.Drawing
- rename Rarr.find to Rarr.findValue
- add Rarr.getInternalList
- add Rarr.mapFromIList .mapFromSeq and .mapFromArray
- add rarr.InternalList to access internal ResizeArray
- add Rarr.trim
- prev-this-next for Rarr
`0.10.1`
- add MathUtil.interpolateTable function
- improve NiceString formatting of F# records
- rename stringbuffer to str
- improve move and rename String.Truncate functions to NiceFormat module
`0.9.0`
- Fix xml doc that was broken in 0.8.0
- Lower minimum FSharp.Core version to 4.5.2
- add tryWith,tryFinally and Using to ComputationalExpressionsBuilders
- fix typos in docstring
`0.8.0`
- update Process Module for running external Processes
- improve float formatting in toNiceString module
- add more colors for printing via Seff editor
- fix typos in docstrings
- add Microsoft.SourceLink.GitHub
`0.7.0`
- Add Process Module for running external Processes
- Fix Rarr.rotate
- Add Rarr.isNotEmpty
- Add IO.getAllFilesInParentsByPattern
- Typo in Timer μs is actually ms
- Add String.truncate, skip and take methods
`0.5.1`
- Updated `Rarr` and `RarrModule`
- Updated `StringModule`
- Improved Exception messages.
- nicer pretty printing via `print` function
`0.4.0`
- first public release