私はHaskellでバイナリ検索ツリーを使っています。Haskell関数で引数を定義する正しい方法は何ですか
ここで私はそう基本的に、コードのこの作品は、BSTに要素を挿入し、第二引数は括弧(例えばinsert 5 (Node Leaf 2 Leaf)
)の内側にロックされている場合、それは正常に動作
data BinaryTree a = Leaf | Node (BinaryTree a) a (BinaryTree a)
deriving (Show, Eq)
insert :: (Ord a, Eq a) => a -> BinaryTree a -> BinaryTree a
insert e (Leaf)= (Node Leaf e Leaf)
insert e (Node n1 a n2)
| e<a=(Node (insert e n1) a n2)
| otherwise = (Node n1 a (insert e n2))
を書きましたが、順番にコードがあります私が望むものを得るためには、私のプログラムが両方の場合に働く必要があります。内側のかっこ内の2番目の引数とそうでないときがあります(insert 5 Node Leaf 2 Leaf
) 何かを得るためにこのコードを書き直す方法について助言できますか?上記のとおりです
は、ここではクリーンアップのように見えるものです:http://pastebin.com/vpNKvDW7 –
私はあなたが実際に5ノードの葉2 'を呼び出す挿入するために_必要_とは思いません括弧なしの「葉」。これは私にとってXYの問題に見えます。まるであなたがまったく違う何かを必要としているかのように、かっこだけを言います。あなたは実際にそれを達成しようとしていますか? – chi