Advertisement
TheFaceTakt

Untitled

Mar 12th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.68 KB | None | 0 0
  1. module some
  2.  
  3.  
  4. let elem n = (List.exists (fun x -> x = n))
  5.  
  6.  
  7. elem 66 [1..5]
  8.  
  9. [<EntryPoint>]
  10. let main argv =
  11. printfn "%A" argv
  12. 0 // return an integer exit code
  13.  
  14.  
  15.  
  16. let abs n = if n >= 0 then n else -n
  17.  
  18.  
  19. let gcd a b =
  20. let a' = abs a
  21. let b' = abs b
  22. let rec gcd' = function
  23. |(a, b) when a = 0 -> b
  24. |(a, b) when b = 0 -> a
  25. |(a, b) when a < b -> gcd' (b, a)
  26. |(a, b) -> gcd'(a - b, b)
  27. gcd' (a', b')
  28.  
  29. gcd -15 12
  30.  
  31.  
  32. let replicate n smth =
  33. let rec replicate' acc = function
  34. |0 -> acc
  35. |n -> replicate' (smth::acc) (n - 1)
  36. replicate' [] n
  37.  
  38. let zip x y =
  39. let xlen = List.length x
  40. let ylen = List.length y
  41. let n = min xlen ylen
  42. let rec zip' acc x' y' = function
  43. |n when n = 1 -> (List.head x', List.head y')::acc
  44. |n -> zip' (List.head x', List.head y')::acc (List.tail xs') (List.tail ys') (n - 1)
  45. if n < 1 then
  46. []
  47. else
  48. zip' [] x y n
  49.  
  50. let append x y =
  51. let rec append' = function
  52. |([], y) -> y
  53. |(x, []) -> x
  54. |(x::xs, y) -> append' (xs, x::y)
  55.  
  56.  
  57. let rev<'a> =
  58. let rec rev' acc = function
  59. |[] -> acc
  60. |x::xs -> rev' (x::acc) xs
  61. rev' []
  62. rev [1; 2; 3; 4; 5]
  63.  
  64. replicate 5 "ого"
  65.  
  66.  
  67. let explode (s:string) = [for c in s -> c]
  68.  
  69. let rec implode = function
  70. |[] -> ""
  71. |(x::xs) -> x.ToString() + (implode xs)
  72.  
  73. let rec subs ch1 ch2 s =
  74. let rec delete' = function
  75. |[] -> []
  76. |(x::cs) -> if x = ch1 then ch2::(delete' cs) else x::(delete' cs)
  77. implode (delete' (explode s))
  78.  
  79.  
  80. delete '1' ['1'; '2'; '3'; '1'; '2']
  81.  
  82. delete 'a' "bacabadaba"
  83.  
  84. subs 'a' 'b' "bacabadaba"
  85.  
  86. let balance str =
  87. let rec bal acc = function
  88. |[] -> (acc = 0)
  89. |'('::xs -> bal (acc + 1) xs
  90. |')'::xs when acc = 0 -> false
  91. |')'::xs -> bal (acc - 1) xs
  92. |x::xs -> bal acc xs
  93. bal 0 str
  94.  
  95. balance (explode ")(")
  96.  
  97.  
  98. if x > 0 then 1 else 0
  99.  
  100. let reverse list =
  101. let rec reverse' curr = function
  102. |[] -> curr
  103. |x::xs -> (reverse' (x::curr) xs)
  104. reverse' [] list
  105.  
  106. let rec reverseAll acc = function
  107. |[] -> acc
  108. |x::xs -> reverseAll (reverse(x)::acc) xs
  109.  
  110. reverseAll [] [[1; 2]; [3; 4]; [5; 6; 7]]
  111.  
  112.  
  113. let firstElem x<a'> =
  114. let rec fE acc = function
  115. |[] -> 1/0
  116. |y::xs -> if y = x then acc else (fE (acc + 1) xs)
  117. fE 0
  118.  
  119. let set list =
  120. let cute = List.sort list
  121.  
  122. let rec del prev flag = function
  123. |[] -> []
  124. |x::xs -> if x = prev && flag != true then (del prev false xs) else x::(del x false xs)
  125. del 0 true cute
  126.  
  127. firstElem 5 [1; 2; 3; 4; 5; 6; 5; 7]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement