deniok: (Default)
deniok ([personal profile] deniok) wrote2012-06-28 05:04 pm

Термы с заданными типами

Три задачки с экзамена, в порядке усложнения условия.

Написать замкнутый терм типа (a -> b) -> ((a -> b) -> b) -> b.

Написать замкнутый терм типа (a -> b) -> ((a -> b) -> b) -> b, которому нельзя приписать тип c -> (c -> b) -> b.

Написать замкнутый терм с наиболее общим типом (a -> b) -> ((a -> b) -> b) -> b.

Re: Наиболее общий тип

[identity profile] dmytro starosud (from livejournal.com) 2012-06-29 09:43 pm (UTC)(link)
То есть, решение для второго - это решение для третьего?
*(у меня плохой функциональный бекграунд, поэтому отошлите куда-то, если так будет лучше - литература имеется ввиду)

Re: Наиболее общий тип

[identity profile] nponeccop.livejournal.com 2012-06-30 05:54 am (UTC)(link)
Решение для третьего является решением для второго и первого, решение для второго является решением для первого. Но не наоборот!
Edited 2012-06-30 08:17 (UTC)

Re: Наиболее общий тип

[identity profile] dmytro starosud (from livejournal.com) 2012-06-30 09:31 am (UTC)(link)
Скажите, пожалуйста, ниже решения для второго и третьего?
\f g -> g (\x -> g f)
\f g -> g (\y -> g ((\x -> f) y))

Re: Наиболее общий тип

[identity profile] nponeccop.livejournal.com 2012-07-01 12:40 pm (UTC)(link)
Любой из этих двух термов является решением всех трех задач.

Re: Наиболее общий тип

[identity profile] dmytro starosud (from livejournal.com) 2012-07-01 09:08 pm (UTC)(link)
Спасибо большое!
Простите, я уже наверное достал.
Скажите, пожалуйста, есть ли терм, который будет решением второго задания но не третьего? И какой?

Re: Наиболее общий тип

[identity profile] deni-ok.livejournal.com 2012-07-01 09:11 pm (UTC)(link)
\f g -> g (\x -> f x)

Re: Наиболее общий тип

[identity profile] dmytro starosud (from livejournal.com) 2012-07-01 09:18 pm (UTC)(link)
Спасибо большое!