Advertisement
Guest User

Untitled

a guest
Aug 20th, 2018
961
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 0.76 KB | None | 0 0
  1.  
  2. fibonacciFy : String -> String -> String
  3. fibonacciFy origIndent input =
  4.   input
  5.     |> String.lines
  6.     |> List.map (fibonacciFyLine origIndent)
  7.     |> String.join "\n"
  8.  
  9.  
  10. fibonacciFyLine : String -> String -> String
  11. fibonacciFyLine origIndent input =
  12.   let
  13.     trimed =
  14.         String.trimLeft input
  15.  
  16.     indentLevel =
  17.         (String.length input - String.length trimed) // String.length origIndent
  18.   in
  19.   String.repeat (2*cumulativeFib indentLevel) " " ++ trimed
  20.  
  21.  
  22. cumulativeFib : Int -> Int
  23. cumulativeFib n =
  24.   List.range 0 n
  25.     |> List.map fibonacci
  26.     |> List.sum
  27.  
  28.  
  29. fibonacci : Int -> Int
  30. fibonacci n =
  31.   let
  32.     fib a b n =
  33.         if n <= 0 then
  34.               a
  35.         else
  36.               fib b (a + b) (n - 1)
  37.   in
  38.   fib 0 1 n
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement