输入中的语法错误(意外的`=')

时间:2015-04-24 05:02:45

标签: haskell syntax-error

我实际上是Haskell的新手。我已经为Queue编写了这段代码,但最后一行总是面临这种语法错误。

public MyButtons(){

    //JFrame frame = new JFrame("MyButtons"); Commentted this
    JPanel panel = new JPanel();
    //frame.add(panel); And this

    JButton b1 = new JButton("Button 1");
    JButton b2 = new JButton("Button 2");

    panel.add(b1);
    panel.add(b2); 
    add(panel); // Add panel to MyButtons frame    
}     

我真的无法弄清楚出了什么问题:(

Syntax error in input (unexpected '='). 

1 个答案:

答案 0 :(得分:1)

没有编译器扩展的解决方案:

在类和实例中删除类型参数UINavigationController

a

并且它编译了没有语言扩展名的

需要MultiParamTypeClasses

编译器想要class QDS q where instance QDS Queue where 的原因很明显:您的MultiParamTypeClasses提供了两个类型参数。如果您不包含该实例,则MultiParamTypeClass就足够了。

需要FlexibleInstances

如果没有灵活实例,像QDS这样的具体声明可以很好地编译。你必须要求其他人做出更深入的解释,我只能表面上说instance QDS Queue Int wherea更灵活。

为什么一个参数足够?

您不会对有效负载Int设置任何限制。包含它与aFunctor等一样不必要。

类型类

从评论中得到的建议:在OOP背景下,类型类会给你一种在家感觉的错觉。您很少需要定义一个类。传递函数的能力比使用对象(或限制为haskell的类型类的数据)更强大。