簡體   English   中英

證明成分((->)r)類型的適用法律

[英]Proving Composition Applicative law for ((->) r) type

組成適用法律如下:

pure (.) <*> u <*> v <*> w = u <*> (v <*> w)

這是我為((->) r)類型證明成分定律的嘗試:

RHS:

u <*> (v <*> w)
u <*> ( \y -> v y (w y) )
\x -> u x ( (\y -> v y (w y)) x )
\x -> u x ( v x (w x)) -- (A)

LHS:

pure (.) <*> u <*> v <*> w
const (.) <*> u <*> v <*> w
(\f -> const (.) f (u f)) <*> v <*> w
(\f -> (.) (u f)) <*> v <*> w
(\g -> (\f -> (.) (u f)) g (v g)) <*> w
\x -> (\g -> (\f -> (.) (u f)) g (v g)) x (w x)
-- Expanding labmda by applying to x
\x -> ((\f -> (.) (u f)) x (v x)) (w x)
\x -> (( (.) (u x)) (v x)) (w x)

\x -> ((u x) . (v x)) (w x) -- (B)

我不認為(A)和(B)是等效的,那么我在哪里犯了錯誤? 我將不勝感激任何幫助或建議。

你快到了。 您只需要使用(.)的定義,即

(f . g) x = f (g x)

在將LHS定義的最后一行替換為該定義之后,您應該擁有兩個明顯相等的lambda。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM