Programmieren in Haskell

Neue Frage »

Lück Auf diesen Beitrag antworten »
Programmieren in Haskell
HI Leute,
ich lerne gerade Haskell. Wir versuchen gerade zwanghaft in Haskell zu ergründen, wie der Quelltext zur probe auf eine Primzahl ist. Wenn mir jemand diesen Quelltext zuschicken möge, das wäre echt super.
Denn wie kann ich sonst eine Zahl untersuchen, ob sie perfekt ist.
Danke Lück
Steve_FL Auf diesen Beitrag antworten »

kenn mich damit nicht aus...gehört aber ins Off-Topic Augenzwinkern
=> Schubs zur Tür hinaus
so Augenzwinkern
Wieder was aufgeräumt...

mfg
Thomas Auf diesen Beitrag antworten »

Hm, was ist das für eine Programmiersprache? So eine rekursive?

Syntaxbeispiel wäre nett. Aber vom Prinzip her weißt du wie du das machen willst?
alpha Auf diesen Beitrag antworten »

was meinst du mit perfekt?
ich geh mal davon aus, dass du halt wissen willst, ob alle zahlen getestet sind.

ich kann leider kein haskel, aber in pascal hab ich schon mal eine procedure verfasst:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
function prim (n, d : integer) : boolean;
begin
if n<2 then 
 prim:=false
else
 if n=2 then 
  prim:=true
 else
  if n mod 2=0 then
   prim:=false
  else
   begin
    if d*d>n then
     prim:=true
    else
     if n mod d=0 then
      prim:=false
     else
      prim:=prim(n,d+2)
   end
end;


ich versuche mal das in pidgin-pascal zu übersetzen:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
die variablen zahl und d werden in die funktion eingeschleust, dabei ist d am anfang gleich 3
wenn die zahl<2 ist, dann
 ist die annahme falsch
ansonsten
 wird geprüft, ob die zahl=2 ist, dann ist 
  die annahme richtig
 ist keines der fall
  wird die zahl durch 2 geteil. geht das auf, dann
   ist die annahme falsch
  ansonsten
   beginnt die schleife 1
    wenn d*d>als die zahl
     ist es eine primzahl
    ansonsten
     wird die zahl durch d geteilt. gibt es einen rest, dann
      ist die annahme falsch
     ansonsten
      wird die funktion mit der zahl und d+2 aufgerufen.
   ende der schleife 1

so, ich hoffe das war verständlich :P
die funktion ruft sich übrigens immer wieder selber auf, ist das in haskell nicht möglich, so tut es mir leid...
fALK dELUXE Auf diesen Beitrag antworten »

ist haskell nicht eine funktionale programmiersprache?
alpha Auf diesen Beitrag antworten »

ist doch eine funktion...
oder was meinst du mit funktional?
 
 
Daniel Auf diesen Beitrag antworten »

naja kenn mich mit haskel auch nicht gut aus aber denke das was alpha in pascal gepostet hat sollte auch in haskel umsetzbar sein ...
alpha Auf diesen Beitrag antworten »

Lück, sag du doch einfach, ob du was mit dem code anzufangen weißt...

@psyrius:
die prozedur hat schon ein paar "problemzonen", die sehr pascalmäßig sind, aber mit ein wenig umschreiben, hast du recht, müsste es eigentlich klappen...
henrik Auf diesen Beitrag antworten »

oh man kennt ihr Scheme ?

Darin coden wir im Info LK zum Thema KI.. das is ja so ätzend -_-
DeGT Auf diesen Beitrag antworten »

Sei Froh, dass Du überhaupt sowas hast, wir plagen uns mit Html rum und markieren Tabellen farblich... traurig
henrik Auf diesen Beitrag antworten »

Zitat:
Original von DeGT
Sei Froh, dass Du überhaupt sowas hast, wir plagen uns mit Html rum und markieren Tabellen farblich... traurig


Naja das muss man ja auch mal lernen! :-P
fALK dELUXE Auf diesen Beitrag antworten »

@alpha:

PASCAL ist eine imperative programmiersprache, wie c(++/#), java, etc.. Dein Programm realisierst du, indem du dem computer befehle gibst....
bei einer funktionalen programmiersprache entwickelt man nur einen ausdruck, eine funktion um ein ganzes programm darzustellen. Ich habs auch nicht wirklich kapiert, aber www.programmierer-board.de dürfte ausschluss darüber geben!

bla, gn8
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »