From c481875eca2b89d752e93b995786bf6d38118c88 Mon Sep 17 00:00:00 2001 From: Yuri Tatishchev Date: Sat, 21 Feb 2026 21:28:52 -0800 Subject: [PATCH] lab05: impl --- lab05/maybeEither.hs | 25 +++++++++++++++++++++++++ lab05/maybeEither.signed.zip | Bin 0 -> 1596 bytes 2 files changed, 25 insertions(+) create mode 100644 lab05/maybeEither.hs create mode 100644 lab05/maybeEither.signed.zip diff --git a/lab05/maybeEither.hs b/lab05/maybeEither.hs new file mode 100644 index 0000000..0e9a2c2 --- /dev/null +++ b/lab05/maybeEither.hs @@ -0,0 +1,25 @@ +getMax :: [Int] -> Maybe Int +getMax [] = Nothing +getMax x = Just (maximum x) + +reciprocal :: (Eq a, Fractional a) => a -> Maybe a +reciprocal 0 = Nothing +reciprocal x = Just (1/x) + +rectangleArea :: Int -> Int -> Either String Int +rectangleArea x y + | x < 0 = Left "Width is not positive" + | y < 0 = Left "Height is not positive" + | otherwise = Right (x * y) + +main :: IO () +main = do + print $ getMax [] + print $ getMax [99,12,37] + print $ getMax [-99,-12,-37] + print $ reciprocal 4 + print $ reciprocal 2 + print $ reciprocal 0 + print $ rectangleArea 5 10 + print $ rectangleArea (-5) 10 + print $ rectangleArea 5 (-10) diff --git a/lab05/maybeEither.signed.zip b/lab05/maybeEither.signed.zip new file mode 100644 index 0000000000000000000000000000000000000000..a3e2cba6cd882f53a031bded6f7b2fed4fcacc02 GIT binary patch literal 1596 zcmZ|Pdpr|r7zgkXF*%7tspVQ6bH9}3mW(cPXN*}GHk)H^O^j~Vh~_q=n9Jt2L>vye z6_!-Y{Sp##NijxBa~V z$D@ee=(9Ki79FaIy?iaj%&PUwftck@HQ6?EMWFJKyhiamM!vVkN0#|K%4XP?F`C#8 zgS<-)Peahoe5vkSpXj9Jzn9)QzSO|*Ubc;$+x z3?RCb@3l33$|U2}FXpV^_4+fLZ$;ICiBLzief5-xz1I__#xv+?1FV;2D~l;mWRZKw zC6Nh%Q8bNe+JkgdzG&=(6RMG$he!{Keydt`25rbs2p1fxXNXpj`pHmu>g;Xlnimaz zPo#9aup=e3Svxl%=ej>Wi3MK3aI&q2G#kk?+)`-}ep94TWlErVUDhit{!r4>&uoRR z+Wa8rX034B2%UtNt*1WDbk8f2Z%~rt>bK^pVdQ9b6Q8}6knjyztjAG40D!;`0NDTU zUiWS9H545j6iU#<67T^dO-?=`VJTa{T0w|kkZGBfcDttf z)z}3DIy?rC{SoE2hVu1U?PuP_aC40GjE+UEL{gQ5?P7e5L0N&rI?)(~WY>dYUC?p2 z+jAVM&bRlo3lXauk)nDr-#B7HTHVR4>VVCeiAsE)we7os(b-jgZNOVq78E@;v#xw! zuV}Ri-}B)!_i6?EY=B+hVocJsKZ1vCPaQ~v`Q{_Qqn8-L0LJ!{CTn-Wadt z@K(s$d>1o(7~*$BW5IFX1a=BX!{ z>bWJSt%(vcX1LVF=&vEc##yo~u>!WFO)aDE?(g6!omt?aYjJ`_nU5#LGs?<`!t#AvW75lPi^vrXhiGI@Upjfxn?+GyXsuu}ndl@S8|zZ&bZJ;s zrb_+qDWvnlqlN51F`uDGP%eGdqLGeSsVj%bCMU})DPl5X|1o43TJpFXb`FhC?1_vH z!{9ureU{!-a@#AI@p;$hT==NvqvwJi2{E?nCp~Y@0x1s-k5D_@_HAkJy+Uk{7`+2F z4#IZF92pq`HE__`tJwJS`%xrFtPwKtri$)mf|KvzbFs+a^ov4Qk}g<3Vr9?|LXOw> zyPxu3vItk+l+rm=&F8X4D_BQ%*|$W%F9@31=NM&h!XBO~R?Ir1g3DRf09 zL*V_#bUT)l9Z&F^iQ&1;Nzt!U4WhK9mYfAvT#l^h&nPqLmYah2->P z7RHq;V)aH%LoqF z#b~{j_H+s3H~!Y2F2-ed%dnTfcP?|52!^F=M4Ty9Q$;iObZ&+D`+!P+%Abu=bxCig z%bH^5u(Z*m_|4J4=@aKSN_Ll-i^)<*}vvj j!2kPq_uL(pe#Uj1v0X^nTM6#nY4UGZ*!Ec|xbylK(q7Yz literal 0 HcmV?d00001