https://github.com/chrispritchard/astar-search
A* Search algorithm in F#
https://github.com/chrispritchard/astar-search
astar-algorithm astar-pathfinding fsharp functional-programming immutable
Last synced: 2 months ago
JSON representation
A* Search algorithm in F#
- Host: GitHub
- URL: https://github.com/chrispritchard/astar-search
- Owner: ChrisPritchard
- License: unlicense
- Created: 2018-09-13T20:13:46.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-12-28T17:59:27.000Z (almost 7 years ago)
- Last Synced: 2025-08-01T07:46:24.688Z (2 months ago)
- Topics: astar-algorithm, astar-pathfinding, fsharp, functional-programming, immutable
- Language: F#
- Size: 16.6 KB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# astar-search
A* Search algorithm in F#.
An implementation of the classic algorithm, as described here:
However, in contrast to the pseudo-code shown in that article, this version is implemented in a purely functional and immutable way, as is more idiomatic for F#.
The core code is in the src/AStar.fs/AStar module. The algorithm requires callers submit a start point, goal point, and three functions: a gscore calculator, fscore calculator and a method that returns the neighbours of a given point. In this way, the algorithm is generalisable to any type of point or graph structure - the only constraint on the generic point type is that it be comparable.
samples/Program.fs contains a console application demonstrating use of the algorithm, finding a path through a two dimensional grid.
This project can be used from nuget:
Enjoy!