2016-10-26 6 views
-3

Dies ist ein Programm in Haskell, dass let:Wie schreibe ich das Programm in wo?

slope (x1,y1) (x2,y2) = let dy = y2-y1 
    dx = x2-x1 
    in dy/dx 

Jetzt versuche ich in dem aber es funktioniert ist nicht richtig unfähig ich bin eigentlich ein AllGo zu bauen für wo würden Sie es für mich schreiben:

slope (x1,y1) (x2,y2) 
| x<0 ="wronge input" 
|otherwise ="I don't know what Im doing" 
where x=dy/dx 
dy=(y2-y1) 
dx=(x2-x1) 
+0

Funktioniert für mich. Ihre Einrückung ist ein bisschen komisch, vielleicht ist das alles. – Thilo

Antwort

3

einrücken x=,dy=,dx= auf der gleichen Säule:

slope (x1,y1) (x2,y2) 
| x<0  = "wrong input" 
|otherwise = "I don't know what Im doing" 
where x=dy/dx 
     dy=(y2-y1) 
     dx=(x2-x1) 

die indentation rule ist nach where (und let, do, case of) das allererste Nicht-Leerzeichen-Wort (kein Kommentar) startet einen Block von Einträgen, und alle diese müssen in derselben Spalte dieses Wortes beginnen. Über dem Wort ist x. Sie können natürlich auf andere Arten einrücken: z.B.

slope (x1,y1) (x2,y2) 
| x<0  = "wrong input" 
|otherwise = "I don't know what Im doing" 
where 
    x=dy/dx 
    dy=(y2-y1) 
    dx=(x2-x1) 
+0

? nur Leerzeichenfehler :(diese Sprache scheint wie C ... – Shahzad

Verwandte Themen