Advertisement
Guest User

Untitled

a guest
Dec 4th, 2017
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (*2. NALOGA: Podane so naslednje funkcije za izračun obsega, ploščine in diagonale pravokotnikov s stranicama a in b: fun obseg a b = Real.fromInt(2*a + 2*b) fun ploscina a b = Real.fromInt(a*b) fun diagonala a b = Math.sqrt(Real.fromInt(a*a + b*b))
  2.  
  3. Podane tri funkcije posplošnimo v splošno funkcijo stranice na naslednji način:
  4.  
  5. fun stranice a b fa fb fs ffin =   ffin (Real.fromInt(fs (fa a) (fb b)))
  6.  
  7. Zapiši nove funkcije obseg1, ploscina1 in diagonala1, ki so implementirane s klicem splošne funkcije stranice.*)
  8.  
  9. fun stranice a b fa fb fs ffin = ffin (Real.fromInt(fs (fa a) (fb b)))
  10. fun obseg1 a b =
  11.     stranice a b (fn x => x*2) (fn y => y*2) op+ (fn x => x)
  12.  
  13. (* ERROR *)
  14.  
  15. Error: operator and operand don't agree [overload conflict]
  16.   operator domain: [* ty] -> [* ty] -> int
  17.   operand:         [+ ty] * [+ ty] -> [+ ty]
  18.   in expression:
  19.     ((((stranice <exp>) b) (fn <pat> => <exp>)) (fn y => <exp> * <exp>)) +
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement