Haskell

Elkezdtem önmagam szórakoztatása céljából (észrevettétek, hogy amikor vizsgákra, zéhákra kellene tanulni, akkor a legkreatívabb az ember? ,=() foglalkozni ezzel a nyelvvel. Nagyon tetszik, csak nekem ritka nehéz egyelőre, mivel eddig csak imperatív programozási nyelveket használtam.

Mivel nem találtam még ilyen topicot (remélem, hogy tényleg nincs), gondoltam létrehozom és itt beszélgethetnénk a Haskellről.

Hozzászólások

Viszonylag sok liben végigrágtam már magam, tudok ajánlani doksikat, ha konkrétan kell vmihez. Kérdésre is szívesen válaszolok, ha tudok.

Alapokhoz a haskell wikibookot ajánlom, onnan sok irányba el lehet indulni.

-------------------
2.6.22-gentoo-r8

üdv!

haskell-ben hogy tudok létrehozni tömböket, ill azok elemeire hogy hivatkozhatok? vagy csak lista megvalósítással próbálkozzak?

Mit szeretnél?

A lista (data [] a = [] | a : [a]) úgy kezelhető, mint egy tömb, lehet többszintű is, létrehozás, elemekre hivatkozás:
(Prelude.:) :: a -> [a] -> [a]
(Prelude.++) :: [a] -> [a] -> [a]
(Prelude.!!) :: [a] -> Int -> a

Az utolsóban az Int arg nem mindig kényelmes, én is sokszor definiáltam át, hasonló okok miatt nem használtam sose a beépített beépített tömb típust: mire átnézem, hogyan tudom kezelni, hogy alakítom át a típusokat stb., saját osztályt írok, ami pont úgy definiál, ahogy adott esetben legcélszerűbb.

illetve a maradékos osztás megvalósítható valamilyen operátorral? (ami c-ben vagy java-ban a % op.)?

üdv.

valaki tudna egy példát írni lista létrehozására haskell-ben, mondjuk hogy tartalmazza az abc betűit, és arra, hogy hogyan tudok hivatkozni a konkrét elemeire?
köszi

hát az lenne, hogy van egy maradékos osztás művelet, ezzel kapok egy számot, és az ahanyadik elemét kellene kiíratni a listának, ami karakterekkel van feltöltve (pontosan az abc betűivel).
pl. mod blabla eredménye 3, és így kiírja nekem a C betűt, ami a lista 3. eleme. csak nemvágom a szintaxisát, hogy hogykell definiálni egy listát, illetve az elemeire hivatkozni.

http://www.scribd.com/doc/3079/Simple-Functions-in-Haskell

ebben az ebookban keress rá a "list" szóra.

Ahogy elnézem, a listát

myList = [a, b, c ..... z]

alakban hozod létre.
Adott pozíción lévő elemére pedig

 myListItem = myList !! n

utasítással hivatkozhatsz.

Rég volt már prog.nyelvek gyak. szóval valaki okosabb majd kijavítja, ha nem jó... de kezdésnek megfelel! GL! ;)

szerk.: osztáshoz: http://www.haskell.org/tutorial/numbers.html

--
A gyors gondolat többet ér, mint a gyors mozdulat.

"észrevettétek, hogy amikor vizsgákra, zéhákra kellene tanulni, akkor a legkreatívabb az ember?"
Igen

Igen. A lényeg: az OpenAFP-Utils cabal csomagbeli afp-split (http://svn.openfoundry.org/openafp/bin/afp-split.hs) mintájára kellene írni egy afp-join haskell programot. Maga az afp-split is végez konkatenálást, ugyanis megadhatóak kiszemelt oldalak egy adott afp fájlban (mint pl. ez: http://web2.osb.hu/z/a.afp), amelyeket aztán egy fájlba tesz; de nekem az kéne, hogy külön fájlokból is lehessen konkatenálni.

Rendben. Azért köszi, hogy érdeklődtél. :-) Amúgy az AFP egy szöveget-képet tartalmazó ipari fájlformátum (nyomtatásra kihegyezve). http://en.wikipedia.org/wiki/IBM_Advanced_Function_Printing_%28AFP%29 - a feladat megoldásához szerintem nem kell teljesen megérteni magát a fájlformátumot, mert az OpenAFP-ben vannak már kész eszközök a dokumentumelemek kezelésére. :-)