問題タブ [unification]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
prolog - プロローグの失敗の統合
これが失敗する理由を誰か教えてください。
X は最初に a にインスタンス化され、次に削除され、次に b に変換され、X = b になるというのが私の仮定でした。試してみると、間違っていることがわかりますが、その理由はわかりません。
ありがとうございました。
prolog - Prolog: 算術式と定数の統一
試験のためにPrologを学習しようとしています。
私のスライドによると、算術式は定数と統一されていません。理由はありますか?
例えば
は0
と一体化しません(X-1)
。
だから私の質問は次のとおりです。定数と算術式の間に統一があった場合、場合によっては問題になりますか?
haskell - (フリップ .) のタイプはどれ?
次のタイプの理由を理解しようとしています。
(flip .) is: (a -> a1 -> b -> c) -> a -> b -> a1 -> c
まず、次のタイプです。
flip: is (a -> b -> c) -> b -> a -> c
(.): is (b -> c) -> (a -> b) -> a -> c
変数の名前を変更して、説明をより明確にするため、型は次のようになります。
flip: is (ax -> bx -> cx) -> bx -> ax -> cx
(.): is (by -> cy) -> (ay -> by) -> ay -> cy
次に、次のように置き換えてみます。
ax = (by -> cy)
bx = (ay -> by)
cx = ay -> cy
したがって、結果の型は (ay -> by) (by -> cy) -> ay -> cy となり、正しい結果とは異なります。
何か助けはありますか?
ありがとう、セバスチャン。
haskell - fun のタイプ gx = ys where ys = [x] ++ filter (curry gx) ys?
fun g x = ys where ys = [x] ++ filter (curry g x) ys
の型が である理由を理解しようとしてい((a, a) -> Bool) -> a -> [a]
ます。
という事は承知しています:
filter :: (a -> Bool) -> [a] -> [a]
そしてそれcurry :: ((a, b) -> c) -> a -> b -> c
しかし、私は続行する方法を理解していません。
haskell - `f1 x xs = (filter . (<)) x xs` の型の手動導出
次のタイプを手動で派生させたい:
f1 x xs = (filter . (<)) x xs
を初めて見x
たので、次のようになります。
次に(<)
、このタイプがあります:
(< x)
次のタイプを統合できる場合にのみ言えます。
それで
そう
フィルタにはこのタイプがあります
xs を見るのは初めてなので、
(filter . (<)) x xs
次のタイプを統合できる場合にのみ言えます。
したがって、正しいタイプが(GHCiに尋ねる)の場合f1 :: (a2 -> Bool) -> [a2] -> [a2]
、 と同じタイプのが得られます。filter
Ord a => a -> [a] -> [a]
何か助けはありますか?
haskell - ((.) folderr) の型の導出
((.) folderr) のタイプを手動で派生させようとしています
それで:
私が得るタイプを一致させる:
しかし、その後、この表現を減らす方法について混乱します。
何か助けはありますか?
ありがとう、
セバスチャン。
haskell - (foldr (.)) の型の導出
(foldr (.)) のタイプを手動で派生させようとしています
それで:
だから私はそれを得る(foldr (.)) :: (a2 -> b2) -> [(b2 -> c2)] -> (a2 -> b2)
しかし、GHCi は次のように返します。:t (foldr (.)) :: (a -> b) -> [b -> b] -> a -> b
なぜ b2 と c2 は同じですか?
ありがとう、
セバスチャン。