错误:插入EQUALOP

时间:2013-12-05 23:56:52

标签: sml ml

嗨,有人可以帮我解释为什么我会得到

ERROR: Inserting EQUALOP

以下代码?

fun generator inchan outchan n = if n>0                         
           then 
               (let 
                   fun loop () =                          
                         val c = recv(outchan)
                         val _ = send (inchan, c)
                in  
                   (loop ();(generator inchan outchan (n-1)))
                end)
            else inchan;

1 个答案:

答案 0 :(得分:3)

输入let语句,然后定义一个函数。但是,在这个功能里面,你 似乎想要定义更多变量。为此,您需要另一个let语句。没有它,您将收到类似的语法错误。

请尝试使用此代码:

fun loop () = send (inchan, recv (outchan))

或者,如果您希望单独的行更清晰:

fun loop () =
    let
      val c = recv (outchan)
    in
      send (inchan, c)
    end

或者

fun loop () = 
    let
      val c = recv (outchan)
      val _ = send (inchan, c)
    in
      ()
    end