Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. "insert.mmod" =
  2. !
  3. {{
  4. insert =
  5.  
  6. ;;; INNFLUTT
  7. obj(fall)
  8. {
  9. ;;; Notkun: z = f(x,y)
  10. ;;; Fyrir: x og y eru gildi af viðeigandi tagi m.v. f.
  11. ;;; Eftir: z er viðeigandi gildi m.v. f.
  12. val f = fall;
  13.  
  14. ;;; ÚTFLUTT
  15.  
  16. ;;; Notkun: z := insertleft(u,x)
  17. ;;; Fyrir: u er gildi sem er löglegt vinstra viðfang í *,
  18. ;;; x=[x1,...,xN] er listi gildi sem eru lögleg
  19. ;;; hægri viðföng í *.
  20. ;;; Eftir: z er "margfeldi" u og gildanna í x, reiknað
  21. ;;; frá vinstri til hægri, þ.e. u*x1*x2*...*xN,
  22. ;;; eða réttara sagt (...((u*x1)*x2)*...)*xN.
  23. ;;; Ath.: Til þess að þetta sé vitrænt þarf * að vera
  24. ;;; aðgerð af tagi AxB -> A, þar sem A og B þurfa
  25. ;;; ekki endilega að vera sama tag.
  26.  
  27. msg insertleft(u,x);;; = fun(u,x)
  28. {
  29. var y = u;
  30. while x
  31. {
  32. y = f(y,head(x));
  33. x = tail(x);
  34. };
  35. y;
  36. };
  37.  
  38. ;;; Notkun: z := insertright(x,u)
  39. ;;; Fyrir: u er gildi sem er löglegt hægra viðfang í *,
  40. ;;; x=[x1,...,xN] er listi gildi sem eru lögleg
  41. ;;; vinstri viðföng í *.
  42. ;;; Eftir: z er "margfeldi" u og gildanna í x, reiknað
  43. ;;; frá hægri til vinstri, þ.e. x1*x2*...*xN*u,
  44. ;;; eða réttara sagt x1*(x2*(...*(xN*u)...)).
  45. ;;; Ath.: Til þess að þetta sé vitrænt þarf * að vera
  46. ;;; aðgerð af tagi AxB -> B, þar sem A og B þurfa
  47. ;;; ekki endilega að vera sama tag.
  48. msg insertright(x,u);;; = fun(x,u)
  49. {
  50. var y;
  51. while x
  52. {
  53. y = head(x):y;
  54. x = tail(x);
  55. };
  56. var z = u;
  57. while y
  58. {
  59. z = f(head(y),z);
  60. y = tail(y);
  61. };
  62. z;
  63. };
  64. };
  65. }};
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement