Advertisement
slik1977

Task2C#F#Evtyukhov

Feb 24th, 2022
1,690
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 1.26 KB | None | 0 0
  1. module MyProgram
  2. open System
  3. open System.IO
  4.  
  5.  let (|>) x f = f x
  6.  let func x = x * x + 2 * x + 4 - 11 * 11 - x * x * x
  7.  let toString (x : int)  = x.ToString() + "DimaEvtyukhov"
  8.  let reverseString   (x : string) = new String(Array.rev (x.ToCharArray())) + "M32011"
  9.  let result1 (x : int) = x |> func |> toString |> reverseString
  10.  
  11.  type GeometricFigure =
  12.     | Rectangle of width : float * length : float
  13.     | Circle of radius : float
  14.     | Triangle of length : float
  15.     | Ellipse of focus : float
  16.  
  17.    
  18. let rectangle = Rectangle(length = 100., width = 100.)
  19. let circle = Circle (10.)
  20. let triangle = Triangle(11.)
  21. let ellipse = Ellipse(228.)
  22.  
  23. let getFigureParameter figure =
  24.     match figure with
  25.     | Rectangle(length = len) -> len|> printfn "%A"
  26.     | Circle(radius = r) ->  r |> printfn "%A"
  27.     | Triangle(length = len) -> len |> printfn "%A"
  28.     | Ellipse(focus = f) -> f |> printfn "%A"
  29.  
  30.    
  31. let result2 = rectangle |> getFigureParameter
  32.  
  33. type Logger() =
  34.     let log p = printfn "logged %A" p
  35.  
  36.     member this.Bind(x, f) =
  37.         log x
  38.         f x
  39.  
  40.     member this.Return(x) = x
  41. let logger = new Logger()
  42. let loggedWork =
  43.     logger
  44.         {
  45.         let! x = 1
  46.         let! y = 5
  47.         let! z = x + y
  48.         return z
  49.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement