Guest User

Untitled

a guest
Jan 22nd, 2018
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. sum : List Integer -> Integer
  2. sum Nil = 0
  3. sum (Cons x xs) = x + sum xs
  4.  
  5.  
  6. -- Plutus Core w/ global statements, data, etc.
  7.  
  8. (declare sum (fun (con Prelude.List (integer)) (integer)))
  9. (define sum (lambda xs
  10. (case xs
  11. (Prelude.Nil () 0)
  12. (Prelude.Cons (x xs') [plusInteger x [sum xs]])))
  13.  
  14.  
  15. -- Plutus Core w/o global statements, w/ Scott encodings (roughly)
  16.  
  17. (letrec
  18. ((declare sum (fun (con Prelude.List (integer)) (integer)))
  19. (define sum (lambda xs
  20. (listCase xs
  21. 0
  22. (lambda x xs' [plusInteger x [sum xs]]))))
  23. <SCOPE>)
  24.  
  25.  
  26.  
  27.  
  28.  
  29. factorial : Integer -> Integer
  30. factorial n =
  31. if n < 1
  32. then 1
  33. else n * factorial (n - 1)
  34.  
  35.  
  36. (declare factorial (fun (integer) (integer)))
  37. (define factorial (lambda n
  38. (case [lessThanInteger n 1]
  39. (Prelude.True () 1)
  40. (Prelude.False () [multiplyInteger n [factorial [subtractInteger n 1]]])))
  41.  
  42.  
  43. (letrec
  44. ((declare factorial (fun (integer) (integer)))
  45. (define factorial (lambda n
  46. (boolCase [lessThanInteger n 1]
  47. (lambda u 1)
  48. (lambda u [multiplyInteger n [factorial [subtractInteger n 1]]]))))
  49. <SCOPE>)
Add Comment
Please, Sign In to add comment