我在haskell非常新,我有一个问题。我想以前的名单。 [0,1,0,0,1,1,0,1]并将元素放在树结构中;
data Tree = Leaf Int | Node String (Tree) (Tree)
到目前为止编写了以下代码,但它给出了错误。
bdd (x:xs)= if elem x [0..9] then Leaf x else Node x (Tree) (Tree)
谢谢你的帮助!
答案 0 :(得分:2)
您的代码尝试将x
放入Leaf
,要求它为Int
,并尝试在Node
中输出,要求它为String
一个Int
。当然String
和Tree
是不同的类型,所以这不会编译。此外,Tree
是一种类型构造函数,因此您无法使用它。您的代码究竟应该做什么?
答案 1 :(得分:2)
你没有在函数的递归调用中使用Tree
构造函数,bdd应返回Leaf
,它是使用Node
或Leaf
构建的,但请注意应使用Node
或Tree
构建节点,并且应使用bdd :: [Int] -> Tree
bdd (x:xs)= if elem x [0..9] then Leaf x else Node (show x) (bdd xs) (bdd xs)
构建节点,而不是var Modal = (function($) {
var tpl = '<div style="display:none;" class="modal"><div class="modal-backdrop"></div><div class="modal-content"></div></div>';
function Modal(container) {
var self = this;
this.container = $(container || 'body');
this.tpl = $(tpl).appendTo(this.container);
this.content = $('.modal-content', this.tpl);
this.backdrop = $('.modal-backdrop', this.tpl);
this.isOpened = false;
this.ANIMATION_DURATION = 500;
this.backdrop.click(function(e) { self.toggle(e) });
}
Modal.prototype.show = function(cb) {
var self = this;
cb = $.isFunction(cb) ? cb : $.noop;
this.tpl.fadeIn(this.ANIMATION_DURATION, function() {
self.isOpened = true;
cb();
});
return this;
};
Modal.prototype.hide = function(cb) {
var self = this;
cb = $.isFunction(cb) ? cb : $.noop;
this.tpl.fadeOut(this.ANIMATION_DURATION, function() {
self.isOpened = false;
cb();
});
return this;
};
Modal.prototype.toggle = function() {
if(this.isOpened) {
return this.hide();
}
return this.show();
};
Modal.prototype.setContent = function(content) {
this.content.html($('<div />').append(content).html());
return this;
};
return Modal;
})(window.jQuery);
function ExampleCtrl($) {
var modal = new Modal();
modal.setContent('<h1>Hello World</h1>');
$('#test').click(function() {
modal.show();
});
}
window.jQuery(document).ready(ExampleCtrl);
.modal {
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
.modal .modal-backdrop {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
background: rgba(0, 0, 0, .8);
}
.modal .modal-content {
width: 300px;
height: 150px;
background: #fff;
border: 1px solid yellow;
position: absolute;
left: 50%;
top: 50%;
margin-left: -150px;
margin-top: -75px;
line-height: 150px;
text-align: center;
}
h1 {
line-height: 100px;
}
您应该检查您希望如何正确构建树,这只是一个示例。