Date: 2012-04-20 10:08 am (UTC)
import Control.Applicative
data B a = B Bool Bool a deriving Show
instance Functor B where fmap h u = pure h <*> u
instance Applicative B where
    pure = B True True
    B b1 k1 f <*> B b2 k2 a = B (if k1 || k2 then b2 else b1) k2 (f a)
{-
pure id <*> B b k a
= B True True <*> B b k a = B b k a

pure f <*> pure a
= B True True f <*> B True True a
= B True True (f a)
= pure (f a)

B True False id <*> pure 0
= B True False id <*> B True True 0
= B True True 0

pure ($ 0) <*> B True False id
= B True True ($ 0) <*> B True False id
= B True False 0

pure (.) <*> B True False id <*> B False True id <*> B False False 0
= ((B True True (.) <*> B True False id) <*> B False True id) <*> B False False 0
= (B True False (id .) <*> B False True id) <*> B False False 0
= B False True id <*> B False False 0
= B False False 0

B True False id <*> (B False True id <*> B False False 0)
= B True False id <*> B False False 0
= B False False 0
-}
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

deniok: (Default)
deniok

February 2022

S M T W T F S
  12345
6789101112
13141516171819
20212223 242526
2728     

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 23rd, 2025 10:53 am
Powered by Dreamwidth Studios