Lahendatud: kui muidu tingimuslause

If-Else avaldus Haskellis on รผks pรตhilisi programmeerimiskontseptsioone, mis aitavad arendajatel oma koodivoogu arukalt juhtida. Eriti funktsionaalsetes programmeerimiskeeltes nagu Haskell, mis mรตistavad tingimuslauseid, sealhulgas kui-muidu, aitab kirjutada koodi, mis pole mitte ainult tรตhus, vaid ka elegantne.

If-Else avaldus on sisuliselt tรตevรครคrtuspรตhine otsustusavaldus. Arvestades tรตevรครคrtuslikku avaldist, kรคivitatakse teatud osa koodist, kui tulemus on Tรตene. Kui tulemus on vale, saab kontrolli teine โ€‹โ€‹osa koodist.

if condition
then execute this when condition is true
else execute this when condition is false

If-Else konstruktsiooni mรตistmine Haskellis

Lahenduse pakkumiseks peame vaatama Haskell If-Else konstruktsiooni prototรผรผpi. Selle tรตttu erineb see teistest keeltest pisut lihtsus ja ekspressiivsus. Tingimuse รผmber pole sulgude lisamise nรตuet ja tรคitmisplokid ei ole seotud lokkis sulgudega.

Vaatleme lihtsat nรคidet, kus kasutame If-Else konstruktsiooni, et teha kindlaks, kas arv on paaris vรตi paaritu.

evenOrOdd :: Int -> String
evenOrOdd n = if n `mod` 2 == 0
              then "Even"
              else "Odd"

Siin vรตtab funktsioon evenOrOdd tรคisarvu (Int) sisendi ja tagastab stringi (String). See kontrollib sisendnumbrit, kui see on paaris, tagastab see "Paaris", vastasel juhul tagastab "paaritu".

Selle kontseptsiooniga seotud raamatukogud ja funktsioonid Haskellis

Haskell vรตimaldab tรถรถtada erinevate andmetรผรผpidega, kasutades tingimuslikke konstruktsioone. Kui tavalised teegid pakuvad funktsioone primitiivsete andmetรผรผpide kรคsitlemiseks, vรตimaldavad teised teegid tรถรถtada keerukamate andmetรผรผpidega.

Haskelli prelรผรผdi teek sisaldab mitmeid funktsioone, mis tรถรถtavad Booli andmetรผรผbiga, mis on If-Else konstruktsiooni aluseks. Peamised funktsioonid on jรคrgmised:

  • (&&): Loogiline JA
  • (||): Loogiline Vร•I
  • (mitte): Loogiline EI

Mรตelge programmile, mis vรตtab kaks tรตevรครคrtust ja tagastab nende JA, Vร•I ja EI tulemused:

import Prelude

logOperation :: Bool -> Bool -> String
logOperation a b = if (a && b) 
                   then "AND operation is True"
                   else if (a || b) 
                        then "OR operation is True"
                        else if (not a) 
                             then "NOT operation of a is True"
                             else "All operations are False"

Selles nรคites vรตtab funktsioon logOperation kaks Boole'i โ€‹โ€‹sisendit ja kontrollib vรคljundi mรครคramiseks nende sisendite mitut tingimust.

Kokkuvรตtteks vรตib รถelda, et Haskelli If-Else konstruktsioon pakub puhast ja lihtsat viisi programmi voo juhtimiseks teatud tรตevรครคrtustestide pรตhjal. Selle sรผntaksi ja semantika mรตistmine vรตimaldab Haskelli funktsionaalse programmeerimise vรตimsust tรคielikult รคra kasutada.

Seonduvad postitused:

Jรคta kommentaar