Guest User

Untitled

a guest
Mar 21st, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.21 KB | None | 0 0
  1. STCK: Et stabelspråk implementert i F#
  2. ======================================
  3. @_teodoran / Teodor Ande Elstad
  4. ___ _ _
  5. / __| | |_ ____ __ | |__
  6. \__ \ | _| / _ | / _| | / /
  7. |___/ \__| \__,_| \__| |_\_\
  8.  
  9. ~~~~~~~~~~~ Baserte ~~~~~~~~~~~
  10. ___ (o) _
  11. / __| _ __ _ _ ____ | |__
  12. \__ \ | '_ \ | '_| / _ | | / /
  13. |___/ | .__/ |_| \__,_| |_\_\
  14. |_|
  15.  
  16.  
  17.  
  18. Litt historie
  19. -------------
  20. 1968: Chuck Moore - Forth
  21. 2001: Manfred von Thun - Joy
  22. 2016: Stian Veum Møllersen - Ait
  23.  
  24.  
  25.  
  26. Stack-baserte programmeringsspråk
  27. ---------------------------------
  28. * Alt er postfiks
  29. * Ingen skikkelige variabler
  30. * Hvordan funker det egentlig i praksis?
  31.  
  32.  
  33.  
  34.  
  35. Et stack-basert programmeringsspråk
  36.  
  37. ____ _____ ____ _ __
  38. / ___| |_ _| / ___| | |/ /
  39. \___ \ | | | | | ' /
  40. ___) | | | | |___ | . \
  41. |____/ |_| \____| |_|\_\
  42.  
  43. (Beware of the Turing tar-pit)
  44.  
  45.  
  46.  
  47. STCK Demo #1
  48. ------------
  49. * push og pop
  50. * dup, 2dup, swap, rot
  51. * tall, +, *, =, >=, <=
  52.  
  53.  
  54.  
  55. STCK Demo #2
  56. ------------
  57. * anonyme stacker / quotations
  58. * app
  59. * church / unchurch
  60.  
  61.  
  62.  
  63. STCK Demo #3
  64. ------------
  65. * bool [] [] ?
  66. * [5 +] add-five #
  67.  
  68.  
  69.  
  70. Project Euler problem #2
  71. ------------------------
  72. * Summer alle Fibonacci-tall under 10
  73. * Svaret er 10
  74.  
  75.  
  76.  
  77. [2dup +] next-fib #
  78.  
  79. [next-fib dup 10 >=
  80. [fib-under-10]
  81. [.] ?] fib-under-10 #
  82.  
  83. [dup 2 % 0 =] is-even #
  84.  
  85. [dup 0 =] next-is-zero #
  86.  
  87. [swap is-even
  88. [+]
  89. [.] ?
  90. swap next-is-zero
  91. [.]
  92. [swap sum-if-even] ?] sum-if-even #
  93.  
  94. 0 1 2 fib-under-10 sum-if-even
  95.  
  96.  
  97.  
  98. Esoterisk, ja gjett om! men...
  99. ------------------------------
  100. * Lett å embedde => Bra for DSL
  101. * Ingen variabler => Ingen problemer
  102. * Begrensninger kan være en styrke!
  103.  
  104.  
  105.  
  106. names.Where(s => s.Length == 5)
  107. .OrderBy(s => s)
  108. .Select(s => s.ToUpper())
  109.  
  110.  
  111.  
  112. 512 |> square |> toStr |> rev
  113.  
  114.  
  115.  
  116. ls | grep ".md" | rev
  117.  
  118.  
  119.  
  120. Konkatenative programmeringsspråk
  121. ---------------------------------
  122. ### Applikasjon
  123.  
  124. f(x) eller f x
  125.  
  126. ### Komposisjon via Applikasjon
  127.  
  128. f(g(x)) _eller_ f ∘ g (x)
  129.  
  130. x |> g |> f _eller_ x g f
  131.  
  132.  
  133.  
  134. Hvor funksjonelle er disse språkene?
  135. ------------------------------------
  136. ### sann / falsk
  137.  
  138. sann(a, b) = a
  139. falsk(a, b) = b
  140.  
  141. ### tall
  142.  
  143. 0 f x = x
  144. 1 f x = f(x)
  145. 2 f x = f(f(x))
  146.  
  147.  
  148.  
  149. Litt om implementasjon av STCK i F#
  150. -----------------------------------
  151. * Stack-typen i Stck.fs
  152. * Context-typen
  153. * eval
  154. * apply
  155. * testing
  156.  
  157.  
  158.  
  159. _ _ (o) ___
  160. | | | | __ __ ____ _ __ ____ |__ \
  161. | |_| | \ \ / / / _ | | '_ \ / _ | / /
  162. | _ | \ V / | (_| | | | | | | (_| | |_|
  163. |_| |_| \_/ \__,_| |_| |_| \__,_| (_)
  164.  
  165. (Hva var poenget med dette)
  166.  
  167.  
  168. Begrensede språk har fordeler
  169. -----------------------------
  170. * Færre ting som kan brukes feil
  171. * Lett og embedde, DSL?
  172.  
  173.  
  174. F# er gøy!
  175. ----------
  176. * Nuff said
  177.  
  178.  
  179. ctrl + end
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186. ____ ____ ____ ____
  187. s ||t ||||a ||||k ||||k ||
  188. ||__||||__||||__||||__||
  189. |/__\||/__\||/__\||/__\|
  190. ____ ____ ____
  191. ||f ||||o ||||r ||
  192. ||__||||__||||__||
  193. |/__\||/__\||/__\|
  194. ____ ____ ____ ____
  195. ||m ||||e ||||g ||||! ||
  196. ||__||||__||||__||||__||
  197. |/__\||/__\||/__\||/__\|
Add Comment
Please, Sign In to add comment