Article View: pl.comp.lang.funkcyjne
Article #465Re: czemu tu taka cisza?
From: Tomasz Zielonka
Date: Fri, 10 Oct 2003 10:03
Date: Fri, 10 Oct 2003 10:03
64 lines
2594 bytes
2594 bytes
Przemek Wiśniewski napisał:
>>>>- "gdzie się podziała pętla for?"... :)
>>>
>>>a po co to komu?
>>
>> do odróżniania teoretyków od praktyków programowania :>
>
> W haskellu chyba nie ma 'for', nie znam go dobrze, cos tam podlubalem,
> ale 'for' nie byl nigdy potrzebny.
Nie ma w jezyku, ale mozna uzyc odpowiedniego HOFa (higher-order
function) lub stworzyc samemu.
For'a z efektami (czyli np. imperatywnego) iterujacego po liscie mozna
napisac, np. tak
for :: Monad m => [a] -> (a -> m b) -> m ()
for (x:xs) f = f x >> for xs f
for [] _ = return ()
Lub krocej
for :: Monad m => [a] -> (a -> m b) -> m ()
for = flip mapM_
(bo to jest wlasciwie to samo z mapM_, tylko z inna kolejnoscia
parametrow)
Uzycie:
for [1..10] print
w monadzie IO spowoduje wypisanie liczb 1 .. 10 w kolejnych linijkach,
za to
for [1..] print
bedzie wypisywac liczby od 1 "do nieskonczonosci".
W bardziej skomplikowanych przypadkach mozna uzyc takiej skladni:
for [1..] $ \x -> do
print x
print (x * 2)
Wyglada prawie jak Python ;)
> Po drugie sa dwa rodzaje 'for':
>
> paskudny: for (i=0; i<10; ++i) / for i = 0 to 9
Paskudnego tez mozna sobie w Haskellu zapisac.
> ciekawszy: for x in [3,4,5,6,7]
>
> Wiec jesli juz jakis 'for' jest uzyteczny to tylko pythoniasty.
Hmmm, dlaczego tylko?
Pozdrawiam,
Tomek
--
.signature: Too many levels of symbolic links
Technical Details
Message-ID:
<slrnbod0ul.57r.t.zielonka@zodiac.mimuw.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!news.internetia.pl!mimuw.edu.pl!news.mimuw.edu.pl!not-for-mailReferences:
<Xns940C7E860B845dupajasio@127.0.0.1> <87he2m8vkq.fsf@hector.domek> <Xns940C891076596dupajasio@127.0.0.1> <s99y8vytfl4.fsf@localhost.localdomain> <Xns940CD6EFCBADzdomu@127.0.0.1> <s99y8vxt6i7.fsf@localhost.localdomain> <87d6d8kisy.fsf@hector.domek> <3045-1065776488@gw.magellan.net.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!news.internetia.pl!mimuw.edu.pl!news.mimuw.edu.pl!not-for-mail From: Tomasz Zielonka <t.zielonka@students.mimuw.edu.pl> Newsgroups: pl.comp.lang.funkcyjne Subject: Re: czemu tu taka cisza? Date: Fri, 10 Oct 2003 10:03:03 +0000 (UTC) Organization: MIMUW Lines: 64 Message-ID: <slrnbod0ul.57r.t.zielonka@zodiac.mimuw.edu.pl> References: <Xns940C7E860B845dupajasio@127.0.0.1> <87he2m8vkq.fsf@hector.domek> <Xns940C891076596dupajasio@127.0.0.1> <s99y8vytfl4.fsf@localhost.localdomain> <Xns940CD6EFCBADzdomu@127.0.0.1> <s99y8vxt6i7.fsf@localhost.localdomain> <87d6d8kisy.fsf@hector.domek> <3045-1065776488@gw.magellan.net.pl> Reply-To: t.zielonka@students.mimuw.edu.pl NNTP-Posting-Host: zodiac.mimuw.edu.pl Mime-Version: 1.0 X-Trace: kenny.mimuw.edu.pl 1065780183 3544 10.1.1.1 (10 Oct 2003 10:03:03 GMT) X-Complaints-To: abuse@news.mimuw.edu.pl NNTP-Posting-Date: Fri, 10 Oct 2003 10:03:03 +0000 (UTC) User-Agent: slrn/0.9.7.4 (Linux) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit