2016-10-26 49 views
-3

這是在Haskell程序與設:如何將let程序寫入哪裏?

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

現在我試着在,但它不能正常工作其實我無法建立一個allgo對於那些你想它爲我寫:

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

適合我。不過,你的縮進有點奇怪,也許就是這樣。 – Thilo

回答

3

縮進在同一列上x=,dy=,dx=

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) 

indentation rule是:where後(和let,do,case of)第一個非空格(非註釋)單詞開始一個條目塊,並且所有這些單詞必須從該單詞的同一列開始。上面的單詞是x。當然,您可以通過其他方式縮進:例如

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

?只有空間錯誤:(該語言看起來像C ... – Shahzad

相關問題