Skip to content

aldrikfr/range

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Range Library

This small library has two goals :
   * enable to fold a sequence of integers like a list
   * split a range, making distributed computing easy

Example of usage

    (* print numbers between 100 and 200 *)
     Range.(from 100 200 |> iter ~f:(Printf.printf "%d\n"));;

     (* print sum of all values between 1 and 50 *)
     Range.(from 1 50 |> fold ~f:(+) 0 |> print_int);;
     
     (* print sum of all values between 1 and 50, adding 4 to all elements and excluding 53 *)
     Range.(from 1 50 |> map ~f:((+) 4) |> filter ~f:((!=) 53) |> fold ~f:(+) 0 |> print_int);;
     
     (* implement a factorial function *)
     let factorial n = Range.(n |> abs |> from 1 |> fold ~f:( * ) 1)
     
     API documentation available at : https://aldrikfr.github.io/range/