Advertisement
Guest User

Untitled

a guest
Apr 20th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.59 KB | None | 0 0
  1. open System
  2.  
  3. type LanguageEnums = Lithuanian=0 | English= 1;;
  4.  
  5. type E<'a> = Breakfast of Name : string * Language : LanguageEnums * Translation : string | Lunch of Name : string * Language : LanguageEnums * Translation : string | Dinner of Name : string * Language : LanguageEnums * Translation : string;;
  6.  
  7. let BC = Breakfast (Name = "Omelet", Language = LanguageEnums.Lithuanian, Translation = "Kiaušinienė");;
  8. let FC = Breakfast (Name = "Futbolas", Language = LanguageEnums.Lithuanian, Translation = "Football");;
  9. let HB = Breakfast (Name= "Rankinis", Language=LanguageEnums.Lithuanian, Translation="Handball");;
  10. let HC = Breakfast (Name="Ledo Ritulys", Language=LanguageEnums.Lithuanian, Translation="Hockey");;
  11. let RC = Breakfast (Name="Regbis",Language=LanguageEnums.Lithuanian, Translation="Rugby");;
  12.  
  13. let TEN = Lunch (Name="Steak", Language=LanguageEnums.Lithuanian, Translation="Kepsnys");;
  14. let SAC = Lunch (Name="Sachmatai", Language=LanguageEnums.Lithuanian, Translation="Chess");;
  15. let BOX = Lunch (Name="Boksas", Language=LanguageEnums.Lithuanian, Translation="Boxing");;
  16. let KEB = Lunch (Name="Kebabų Valgymas", Language=LanguageEnums.Lithuanian, Translation="Competetive Kebab Eating");;
  17. let IIG = Lunch (Name="Sėmkių Valgymas", Language=LanguageEnums.Lithuanian, Translation="Competetive Eating of sunflower seeds");;
  18.  
  19. let KEBA = Dinner (Name="Banana", Language=LanguageEnums.Lithuanian, Translation="Bananas");;
  20. let PICA = Dinner (Name="Piculė", Language=LanguageEnums.Lithuanian, Translation="Pizza");;
  21. let FALA = Dinner (Name="Falafelis", Language=LanguageEnums.Lithuanian, Translation="Falafel");;
  22. let CHIP = Dinner (Name="Bulvių Traškučiai", Language=LanguageEnums.Lithuanian, Translation="Potato Chips");;
  23. let SEMA = Dinner (Name="Semkės", Language=LanguageEnums.Lithuanian, Translation="Sunflower seeds");;
  24.  
  25.  
  26. let thinghies = [BC;FC;HB;HC;RC;TEN;SAC;BOX;KEB;IIG;KEBA;PICA;FALA;CHIP;SEMA];;
  27. // Initializes everything???????????????????
  28.  
  29. // Translate Function Starts
  30. // Nesuprantu reikšmių f1,f2,f3 iki galo
  31. let translate (word:string) =
  32. let mutable isTranslated = false;
  33. for i in thinghies do
  34. match i with
  35. | Breakfast (f1,f2,f3) -> if f1.ToLower() = word.ToLower() then
  36. printfn "'%s' is a Breakfast Meal, which is '%s' in %A \n" word f3 f2
  37. isTranslated <- true
  38. | Lunch (f1,f2,f3) -> if f1.ToLower() = word.ToLower() then
  39. printfn "'%s' is a lunch meal, which is '%s' in %A \n" word f3 f2
  40. isTranslated <- true
  41. | Dinner (f1,f2,f3) -> if f1.ToLower() = word.ToLower() then
  42. printfn "'%s' is a meal for the evening, which is'%s' in %A \n" word f3 f2
  43. isTranslated <- true
  44. if (not isTranslated) then printfn "Sorry, your word is not in the dictionary (at least not in our) '%s' \n" word;;
  45.  
  46. let interpreterAgent = MailboxProcessor.Start(fun translation->
  47.  
  48. //processing function
  49. let rec translateLoop() = async{
  50.  
  51. //read input
  52. let! word = translation.Receive()
  53. printfn "Looking for a translation for: %s" word
  54.  
  55. //call translate to process input
  56. translate word
  57.  
  58. return! translateLoop()
  59. }
  60.  
  61. translateLoop()
  62. );;
  63.  
  64. interpreterAgent.Post "omelet"
  65. interpreterAgent.Post "Steak"
  66. interpreterAgent.Post "BANANA"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement