Advertisement
Guest User

Untitled

a guest
Nov 19th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 1.25 KB | None | 0 0
  1. let rec filter func list =
  2.         match list with
  3.         | x::xs when func xs -> x::(filter func xs)
  4.         | _::xs -> filter func xs
  5.         | [] -> []
  6.  
  7.     let rec count list =
  8.         match list with
  9.         | [] -> 0
  10.         | x::xs -> 1 + count xs
  11.                                          
  12.     let first list =
  13.         match list with
  14.         | [] -> null
  15.         | x::xs -> x
  16.          
  17.     let rec reverse list =
  18.         match list with
  19.         | [] -> []
  20.         | x::xs -> reverse xs @ [x]        
  21.  
  22.     let last list =
  23.         match list with
  24.         | [] -> null
  25.         | x -> first (reverse x)
  26.  
  27.     let rec take list takeVal =
  28.         match list, takeVal with
  29.         | [], _ -> []
  30.         | _, 0 -> []
  31.         | x::xs, t -> x::(take xs (t - 1))
  32.  
  33.     let rec skip list skipVal =
  34.         match list, skipVal with
  35.         | x, s when s < 0 -> x
  36.         | [], _ -> []
  37.         | x, 0 -> x
  38.         | x::xs, s -> skip xs (s - 1)
  39.  
  40.     let addToEnd list token =
  41.         list @ [token]
  42.  
  43.     let addToBegin list token =
  44.         token::list
  45.  
  46.     let removeAt list token =
  47.         list |> filter (fun x -> x = token)
  48.  
  49.     let addToPosition list token position =
  50.         (list |> take position) @ [token] @ (list |> skip position)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement