Giter VIP home page Giter VIP logo

leolorenzoluis / algorithmsanddatastructurebyfsharp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from phasetr/algorithmsanddatastructurebyfsharp

0.0 1.0 0.0 8.01 MB

algorithms and data structures by F#

Shell 0.34% JavaScript 4.12% Ruby 0.01% C++ 3.63% Python 3.04% C 1.94% OCaml 7.93% Common Lisp 0.37% Haskell 28.25% Go 1.08% C# 2.42% F# 39.65% Rust 7.03% Standard ML 0.01% Julia 0.11% Makefile 0.06% Dockerfile 0.01%

algorithmsanddatastructurebyfsharp's Introduction

Algorithms and Data Structures by (mainly) the F# language

Motivation

I'd like to write codes for algorithms and data structures by F#.

We have many many books for them in imperative or objective-oriented languages, but we have few books in functional languages. We have some famous books in functional languages, but they are difficult to me. And, for some reasons, I'd like to study the themes by F#. Some comments are here.

  • Richard Bird, Pearls of Functional Algorithm Design, written by Haskell: This is very difficult and we meet many unusual themes in it. I'd like to study usual themes. Furthermore it treats only algorithms.
  • Chris Okasaki, Purely Functional Data Structures, written by SML and Haskell: We have only data structure themes in this book, and small amount of them.
  • Masood, Learning F# Functional Data Structures and Algorithms written by F#: The codes in this book is written by imperative style, I think. I'd like to study functional style algorithms.
  • vkostrykov, scalacaster written by Scala: Data structure objects seem to be mutable objects. I'd like to study immutable style.
  • Rabhi and Lapalme, Algorithms A Functional Programming Approach written by Haskell: This looks more algorithms than others.
  • (NEW! 2020) Bird, Gibbons, Algorithm Design with Haskell. Now I reading this book (at 2022/1), and I am rewriting to F#! This book includes data structures, and is relatively easy to read.

Hence I decide to write codes by myself.

For my study and seminars I also contains programs by several languages other than F#, e.g., C++, Python.

Directory Structure

  • AOJ: Codes for the contests in AOJ. This site also contains some fundamental algorithms and data structure codes in the form of problems, and is very good introductory one.
  • AtCoder: Codes for the contests in AtCoder.
  • DataStructures: Codes for data structures. I added comments for referenced sites, pages, book pages.
  • Book-AlgorithmsAndDataStructuresForProgrammingContests: Codes for this book.
  • Library: Codes for important processes.

References

I know their names, but I do not read them thoroughly.

F# references

Algorithms and data structures

F# official

memo

Sample codes

Useful pages in fsharpforfunandprofit.com

Jargon Alert

From the book Domain Modeling Made Functional by Wlaschin.

  • In the error-handling context, the bind function converts a Result-generating function into a two-track function. It’s used to chain Result-generating functions "in series." More generally, the bind function is a key component of a monad.
  • In the error-handling context, the map function converts a one-track function into a two-track function.
  • The monadic approach to composition refers to combining functions in series using bind.
  • The applicative approach to composition refers to combining results in parallel.

algorithmsanddatastructurebyfsharp's People

Contributors

phasetr avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.