自定义应用可能

时间:2017-02-25 13:34:01

标签: haskell

试图实现与Maybe相同性质的应用。 在赞美方面有很多错误,最像是

$(document).ready(function(){
  $('a[data-toggle=dropdown]').on('click', function(e){
    //$(this).next('ul').show();

    //console.log('click');
    e.stopPropagation();
    e.preventDefault();
    $(this).parent().siblings().removeClass('open');
    $(this).parent().toggleClass('open');
  });
  if($('.dropdown-menu').hasClass('open')){
    console.log('visible');
  }
});

代码如下

Couldn't match expected type ‘FixMePls b’
            with actual type ‘Maybe a1’

欢迎任何关于我做错的提示。我怀疑它的数据类型声明,但不知道如何解决它。

1 个答案:

答案 0 :(得分:6)

data FixMePls a = FixMe | Pls a deriving (Eq, Show)

对那个

来说没问题
instance Monoid a => Monoid (FixMePls a) where
  mempty = Nothing
  mappend m Nothing = m
  mappend Nothing m = m
  mappend (Pls a) (Pls a') = Pls (mappend a a')

此处您开始混合MaybeFixmePls - NothingMaybe的构造函数,而Fixme是您需要的构造函数。

instance Monoid a => Monoid (FixMePls a) where
  mempty = FixMe
  mappend m FixMe = m
  mappend FixMe m = m
  mappend (Pls a) (Pls a') = Pls (mappend a a')

我正在省略应用实例 - 因为它应该非常相似,如果你有问题 - 我发现了一个父母化错误;)