Paradygmaty programowania/Test 8: U podstaw programowania funkcyjnego — rachunek lambda

Z Studia Informatyczne
Wersja z dnia 08:58, 28 sie 2023 autorstwa Luki (dyskusja | edycje) (Zastępowanie tekstu – „\displaystyle ” na „”)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Test 8

Jeśli M jest termem rachunku lambda, zaś x jest zmienną, to λM.x nazywamy:

abstrakcją

aplikacją

termem wolnym

to w ogóle nie jest term rachunku lambda

W termie λxy.yz wolna jest zmienna:

x

y

z

żadna

Który term jest wynikiem α-konwersji termu λx.xy?

λx.xz

λy.yy

λz.zy

żaden z wymienionych

Wynikiem β-redukcji termu (λxy.xy)z jest term:

λx.xz

λy.zy

λzy.zy

żaden z wymienionych

Aplikacja PQ zwana jest redeksem, jeśli:

P jest w postaci abstrakcji

Q jest w postaci bstrakcji

P nie zawiera zmiennych wolnych

Q nie zawiera zmiennych wolnych

Mówimy, że term jest w postaci normalnej, jeśli:

żaden jego podterm nie jest redeksem

zawiera dokładnie jeden redeks

zawiera co najmniej jeden redeks

nie zawiera zmiennych wolnych

Postać normalna (o ile istnieje) jest unikalna z dokładnością do:

α-konwersji

β-redukcji

i α-konwersji, i β-redukcji

jest bezwzględnie unikalna

Przymując standardową reprezentację liczb naturalnych w rachunku lambda, term λmnsx.(ms)(nsx) reprezentuje:

dodawanie

mnożenie

potęgowanie

żadne z wymienionych tu działań

Funkcje reprezentowalne w rachunku lambda (klasycznym, beztypowym) odpowiadają dokładnie modelowi:

funkcji obliczalnych totalnych (nieczęściowych)

funkcji obliczalnych częściowych

funkcji dających się obliczyć w stałej pamięci

żadnemu z wymienionych

Operator punktu stałego to term Y taki, że dla dowolnego termu M aplikacja YM jest równa, modulo β-redukcja:

M

M(YM)

Y

YM