Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- "insert.mmod" =
- !
- {{
- insert =
- ;;; INNFLUTT
- obj(fall)
- {
- ;;; Notkun: z = f(x,y)
- ;;; Fyrir: x og y eru gildi af viðeigandi tagi m.v. f.
- ;;; Eftir: z er viðeigandi gildi m.v. f.
- val f = fall;
- ;;; ÚTFLUTT
- ;;; Notkun: z := insertleft(u,x)
- ;;; Fyrir: u er gildi sem er löglegt vinstra viðfang í *,
- ;;; x=[x1,...,xN] er listi gildi sem eru lögleg
- ;;; hægri viðföng í *.
- ;;; Eftir: z er "margfeldi" u og gildanna í x, reiknað
- ;;; frá vinstri til hægri, þ.e. u*x1*x2*...*xN,
- ;;; eða réttara sagt (...((u*x1)*x2)*...)*xN.
- ;;; Ath.: Til þess að þetta sé vitrænt þarf * að vera
- ;;; aðgerð af tagi AxB -> A, þar sem A og B þurfa
- ;;; ekki endilega að vera sama tag.
- msg insertleft(u,x);;; = fun(u,x)
- {
- var y = u;
- while x
- {
- y = f(y,head(x));
- x = tail(x);
- };
- y;
- };
- ;;; Notkun: z := insertright(x,u)
- ;;; Fyrir: u er gildi sem er löglegt hægra viðfang í *,
- ;;; x=[x1,...,xN] er listi gildi sem eru lögleg
- ;;; vinstri viðföng í *.
- ;;; Eftir: z er "margfeldi" u og gildanna í x, reiknað
- ;;; frá hægri til vinstri, þ.e. x1*x2*...*xN*u,
- ;;; eða réttara sagt x1*(x2*(...*(xN*u)...)).
- ;;; Ath.: Til þess að þetta sé vitrænt þarf * að vera
- ;;; aðgerð af tagi AxB -> B, þar sem A og B þurfa
- ;;; ekki endilega að vera sama tag.
- msg insertright(x,u);;; = fun(x,u)
- {
- var y;
- while x
- {
- y = head(x):y;
- x = tail(x);
- };
- var z = u;
- while y
- {
- z = f(head(y),z);
- y = tail(y);
- };
- z;
- };
- };
- }};
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement