Advertisement
olemis

Edx - F# - Data and Types

Nov 5th, 2015
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 1.47 KB | None | 0 0
  1. // Learn more about F# at http://fsharp.org
  2. // See the 'F# Tutorial' project for more help.
  3.  
  4. // The code for both koan and problem are included in this file
  5. // Indented code available at
  6.  
  7. open System
  8.  
  9. [<EntryPoint>]
  10. let main argv =
  11.  
  12.     // Koan
  13.  
  14. //    let arr = [| 1, 2, 3, 4, 5, 6, 7, 8, 9 |]
  15. //    let l = arr.Length
  16. //    let isEven x = x % 2 = 0
  17. //
  18. //    let out =
  19. //        [ for i = 0 to l do
  20. //              if isEven arr.[i] then yield arr.[i] ]
  21. //
  22. //    let newout = 0 @ out
  23.  
  24.     let arr = [| 1; 2; 3; 4; 5; 6; 7; 8; 9 |]
  25.     let l = arr.Length
  26.     let isEven x = x % 2 = 0
  27.  
  28.     let out =
  29.         [ for i = 0 to l - 1 do
  30.               if isEven arr.[i] then yield arr.[i] ]
  31.  
  32.     let newout = [0] @ out
  33.  
  34.     printfn "%A" newout
  35.  
  36.     // Project
  37.     let values = seq {
  38.         let mutable go = true
  39.         while go do
  40.             printf "Enter next number "
  41.             let numberstr = Console.ReadLine()
  42.             let isvalid, number = Double.TryParse(numberstr)
  43.             if not isvalid then
  44.                 printfn "Invalid number"
  45.             else
  46.                 yield number
  47.             printf "Continue (y/n) "
  48.             let answer = Console.ReadLine()
  49.             go <- answer.ToLower() = "y"
  50.     }
  51.     let fi = (1.0 + Math.Sqrt(5.0)) / 2.0
  52.     let output = [for number in values do yield (number, fi * number)]
  53.     for x in output do
  54.         Console.WriteLine(x)
  55.  
  56.     Console.ReadKey()
  57.     0 // return an integer exit code
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement