Разумевање кључне речи 'претпоставља' у Хаскелл функцијама
Кључна реч `претпоставља` у Хаскелл-у се користи за спецификацију предуслова или претпоставке која мора бити тачна да би функција била применљива. Другим речима, он специфицира услов који мора да важи пре него што функција може да буде позвана.ӕӕНа пример, размотрите следећу функцију:ӕ```ӕф :: Инт -> Интӕф к = к + 1ӕ```ӕОва функција узима цео број `к` и враћа његовог наследника (тј. `к + 1`). Међутим, ова функција није применљива ако је `к` негативна, јер би резултат `к + 1` такође био негативан. Да бисмо навели ову претпоставку, можемо користити кључну реч `ассумес`:ӕ```ӕф :: Инт -> Инт претпоставља (к >= 0)ӕф к = к + 1ӕ```ӕ Сада функција `ф` може само бити позван са позитивним целим бројевима, и ако се као аргумент прослеђује негативан цео број, компајлер ће покренути грешку.ӕӕСлично, можемо користити кључну реч `претпостављам` да наведемо друге претпоставке или предуслове који морају бити тачни да би функција била применљива . На пример:ӕ```ӕг :: Инт -> Инт претпоставља (парно к)ӕг к = к + 1ӕ```ӕОва функција узима цео број `к` и враћа његовог наследника, али само ако је `к` паран. Ако је `к` непаран, компајлер ће покренути грешку.ӕӕУ резимеу, кључна реч `ассумес` у Хаскелл-у се користи за спецификацију претпоставки или предуслова који морају бити тачни да би функција била применљива. Омогућава нам да изразимо ограничења на улазне вредности које функција може да прихвати, и може помоћи у спречавању грешака и побољшању поузданости нашег кода.