|
|||
Лабораторна робота №2 Тема: «Функції SML для основних комбінаторів»Лабораторна робота №2 Тема: «Функції SML для основних комбінаторів» Мета роботи: Отримати уявлення про відображення комбінаторної логіки на мову SML 1. Теоретичні відомості За визначенням комбінатор – це терм, що не містить вільних змінних. Наприклад, якщо в законі комутативності x+y=y+x визначити alpha(x, y)=x+y і (Cf)(x, y)=f(xy), то комутативність можна буде записати у вигляді alpha = C alpha. Комбінаторна логіка найбільш природним чином відображується на мови функціонального програмування. Запис базисних комбінаторів I K S ( Ix=x, Sxyz= xz(yz), Kxy=x) на SML буде виглядати так: fun Ix = x; fun Kxy = x; fun Sxyz = xz(yz); 2. Порядок виконання роботи В процесі самостійної роботи: 1. Сформулювати формальну постановку завдання, записати правила виведення. 2. Виконати варіант для індивідуального завдання відповідно до порядкового номера. 3. Написати звіт по лабораторній роботі. В навчальній лабораторії: 1. Здати допуск по лабораторній роботі викладачу. 2. Ввести свою програму в ПК. 3. Відлагодити програму і одержати контрольні результати. 4. Порівняти одержані результати з результатами трасування. 3. Зміст звіту Звіт по лабораторній роботі повинен містити: 1. Титульний лист. 2. Варіант індивідуального завдання. 3. Текст програми. 4. Відповіді на контрольні запитання. 4. Варіанти завдань Виразити в базисі {K, s} комбінатори із заданими характеристиками, переконатися в справедливості проведених перетворень: 1. I, де Ia = a; 2. B, где B abc = a(bc); 3. C, де C abc = acb; 4. W, где W ab = abb; 5. Ψ, де Ψ abcd = a(bc)(bd); 6. C[2], де C[2] abcd = acdb; 7. C[2], де C[2] abcd = adbc; 8. B2, де B2 abcd = a(bcd); 9. Y, де Ya = a (Ya); 10. C[3], де C[3] abcde = acdeb; 11. C[3], де C[3] abcde = aebcd; 12. B3, де B3 abcde = a(bcde); 13. Φ, де Φ abcd = a(bd)(cd); Виразити в базисі {B, c, s} комбінатори із заданими характеристиками, переконатися в справедливості проведених перетворень: 14. I, де Ia = a; 15. K, де K ab = a; 16. S, де S abc = ac(bc); 17. W, де W ab = abb; 18. Ψ, де Ψ abcd = a(bc)(bd); 19. 28. C[2], де C[2] abcd = acdb; 20. C[2], де C[2] abcd = adbc; 21. B2, де B2 abcd = a(bcd); 22. Y, де Ya = a (Ya); 23. C[3], де C[3] abcde = acdeb; 24. C[3], де C[3] abcde = aebcd; 25. B3, где B3 abcde = a(bcde); 26. Φ, где Φ abcd = a(bd)(cd).
|
|||
|