deniok: (lambda cube)
[personal profile] deniok
Каждый должен посадить дерево, построить дом, воспитать ребенка и написать статью в Википедии.

Критикуйте, если что не так, а ещё лучше правьте прямо там.

Date: 2009-02-27 09:49 am (UTC)
From: [identity profile] antilamer.livejournal.com
Внес свою пару копеек про поддержку в языках программирования.

Date: 2009-02-27 11:18 am (UTC)
From: [identity profile] deni-ok.livejournal.com
Мне кажется, что в ограниченной форме лямбда омегу и Хаскелл98 поддерживает. Ну, то есть, наполовину - конструкторы типов есть (List a) :: * -> * (тип, зависящий от типа). Применили к типу Int :: *, получили (List Int) :: *. А лямбда-абстракции для этого дела нету: (\ (a :: *) -> (a -> a)) :: (* -> *) не запишешь. То есть типовый комбинатор D, такой что
D Int возвращает Int -> Int
D Bool возвращает Bool -> Bool
etc

Кстати на data families это можно как-то задать? Я пишу:
data family D :: * -> *

type Arr a b = (->) a b

data instance D b = Arr b b

Теперь в GHCi
*TypeFam> let f1 = (\x -> x) :: Arr Int Int
*TypeFam> :t f1
f1 :: Int -> Int
*TypeFam> let f2 = (\x -> x) :: D Int

:1:10:
    The lambda expression `\ x -> x' has one argument,
    but its type `D Int' has none
    In the expression: (\ x -> x) :: D Int
    In the definition of `f2': f2 = (\ x -> x) :: D Int

Date: 2009-02-27 06:54 pm (UTC)
From: [identity profile] lomeo.livejournal.com
Делай на type families такие вещи

type family D a

type Arr a b = (->) a b

type instance D b = Arr b b


Насчёт лямбда абстракции нет, что-то не понял
Ты не об этом?

D = (&Lambda A. A -> A) :: (* -> *)


в типизированной полиморфной лямбде.

Date: 2009-02-27 07:40 pm (UTC)
From: [identity profile] deni-ok.livejournal.com
Вот спасибочки, а то я пока type family и data family с трудом различаю.

А про лямбду над типами, да ты понял правильно. Большая лямбда - это какой ключик GHC надо заюзать? ;-)

Date: 2009-02-27 09:04 pm (UTC)
From: [identity profile] lomeo.livejournal.com
Чёрт, я не подумал, что ты про Хаскель :-)

Date: 2009-02-27 09:26 pm (UTC)
From: [identity profile] deni-ok.livejournal.com
Два двоеточия - о чем еще думать? ;-)

Date: 2009-02-27 09:11 pm (UTC)
From: [identity profile] lomeo.livejournal.com
Ещё! Дай плз в статье ссылку на свой перевод главы из Барендрегта и на слайды с пометкой, что на русском.

Date: 2009-02-27 09:25 pm (UTC)
From: [identity profile] deni-ok.livejournal.com
Я стесняюсь. Сам дай :)))

Date: 2009-02-27 09:35 pm (UTC)
From: [identity profile] lomeo.livejournal.com
Дал, но

1. Ссылка не рабочая сейчас почему-то.
2. Я не знаю в какой форме правильно это делать.

Date: 2009-02-27 09:59 pm (UTC)
From: [identity profile] deni-ok.livejournal.com
Это к [livejournal.com profile] dtim, очевидно последствия http://dtim.livejournal.com/180975.html

Profile

deniok: (Default)
deniok

February 2022

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

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 22nd, 2025 09:16 pm
Powered by Dreamwidth Studios