Functional programming 米兰达抛出了一个我不知道的错误';我不明白

Functional programming 米兰达抛出了一个我不知道的错误';我不明白,functional-programming,miranda,Functional Programming,Miranda,我试图做一个函数,当给定x值和一条直线时,它会找到一条直线的y值 我已经将点定义为一对NUM,将线定义为一对点,如图所示。大部分都可以,但在最后一行我得到了一个未定义的函数错误。 “未定义函数:q”。 我看不出米兰达有什么理由认为q应该是一个函数。如果我把q改为p,同样的错误也会存在,p在两条直线上正常工作 谢谢你的帮助 point == (num,num) line == (point,point) xcoord :: point -> num xcoord (x,y) = x yc

我试图做一个函数,当给定x值和一条直线时,它会找到一条直线的y值 我已经将点定义为一对NUM,将线定义为一对点,如图所示。大部分都可以,但在最后一行我得到了一个未定义的函数错误。 “未定义函数:q”。 我看不出米兰达有什么理由认为q应该是一个函数。如果我把q改为p,同样的错误也会存在,p在两条直线上正常工作

谢谢你的帮助

point == (num,num)
line == (point,point)

xcoord :: point -> num
xcoord (x,y) = x

ycoord :: point -> num
ycoord (x,y) = y

yvalue :: num -> line -> num
yvalue x (p,q) = ycoord p + (x - xcoord p)*slope
               where
               slope = (ycoord q - ycoord p)/(xcoord q - xcoord p)

我回答了我自己的问题。有一个间距问题。此处和坡度需要与上面的等号相距一个额外的空间。