Article View: pl.comp.lang.funkcyjne
Article #948Re: Programistyczna zagadka
From: Michal Przybylek
Date: Sat, 26 Jul 2008 00:33
Date: Sat, 26 Jul 2008 00:33
34 lines
2122 bytes
2122 bytes
Dnia 26-07-2008 o 02:14:44 Michal Przybylek <michal.przybylek@gmail.com>
napisał(a):
> computeFact n = callCC $ \exit ->
> do
> "i" <-: n -- inicjalizujemy "i" na n
> "acc" <-: 1 -- inicjalizujemy "acc" na 1
> loop $ do
> Just i <- ref "i" -- wez wartosc zmiennej "i"
> Just acc <- ref "acc" -- wez wartosc zmiennej "acc"
> if i == 0
> then exit acc -- wyskakujemy z petli z wynikiem acc
> else do
> "i" <-: i-1 -- ustawiamy "i" na i-1
> "acc" <-: acc*i -- ustawiamy "acc" na acc*i
Tak jest jeszcze imperatywniej :-)
computeFact n = callCC $ \exit ->
do
"i" <-: n -- inicjalizujemy "i" na n
"acc" <-: 1 -- inicjalizujemy "acc" na 1
loop $ do
Just i <- ref "i" -- wez wartosc zmiennej "i"
Just acc <- ref "acc" -- wez wartosc zmiennej "acc"
when (i == 0) $ exit acc -- wyskakujemy z petli z wynikiem "acc"
"i" <-: i-1 -- ustawiamy "i" na i-1
"acc" <-: acc*i -- ustawiamy "acc" na acc*i
--
Michał Przybyłek
Technical Details
Message-ID:
<op.uevih3u9ozidl8@dlv63.neoplus.adsl.tpnet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!newsfeed.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mailReferences:
<op.uevdkkkxozidl8@dkd78.neoplus.adsl.tpnet.pl> <op.uevhlrnnozidl8@dlv63.neoplus.adsl.tpnet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!newsfeed.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail From: "Michal Przybylek" <michal.przybylek@gmail.com> Newsgroups: pl.comp.lang.funkcyjne Subject: Re: Programistyczna zagadka Date: Sat, 26 Jul 2008 02:33:29 +0200 Organization: TP - http://www.tp.pl/ Lines: 34 Message-ID: <op.uevih3u9ozidl8@dlv63.neoplus.adsl.tpnet.pl> References: <op.uevdkkkxozidl8@dkd78.neoplus.adsl.tpnet.pl> <op.uevhlrnnozidl8@dlv63.neoplus.adsl.tpnet.pl> NNTP-Posting-Host: dlv63.neoplus.adsl.tpnet.pl Mime-Version: 1.0 X-Trace: nemesis.news.neostrada.pl 1217032425 805 83.24.51.63 (26 Jul 2008 00:33:45 GMT) X-Complaints-To: usenet@news.neostrada.pl NNTP-Posting-Date: Sat, 26 Jul 2008 00:33:45 +0000 (UTC) User-Agent: Opera Mail/9.51 (Win32) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit