Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Python
Перезагрузить страницу Помогите переделать из хаскеля в питон, используя TPG
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
lalalasha lalalasha вне форума
Новичок
 
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.05.2012
Smile Помогите переделать из хаскеля в питон, используя TPG - 03.05.2012, 14:52

Нужно переделать из Хаскела в Питон, используя TPG, следующий код
Теоретически возможно, хотя и неэффективно, определить целые числа с помощью рекурсивных типов данных следующим образом: data Number = Zero | Next Number Т. е. число является либо нулем (Zero), либо определяется, как число, следующее за предыдущим числом. Например, число 3 записывается как Next (Next (Next Zero)). Определите для такого представления следующие функции:
1) fromInt, для заданного целого числа типа Integer возвращающую соответствующее ему значение типа Number.
2) toInt, преобразующую значение типа Number в соответствующее целое число.
3) plus :: Number -> Number -> Number, свои аргументы.
4) mult :: Number -> Number -> Number, умножающую свои аргументы.
5) dec, вычитающую единицу из своего аргумента. Для Zero функция должна возвращать Zero.
6) fact, вычисляющую факториал.


data Number = Zero | Next Number deriving Show

dec (Next n) = n
dec _ = Zero

fromInt 0 = Zero
fromInt n = Next $ fromInt (n - 1)

toInt Zero = 0
toInt (Next n) = succ (toInt n)

plus Zero n = n
plus t n = Next (plus (dec t) n)

mult Zero _ = Zero
mult t n = plus n (mult (dec t) n)

fact Zero = Next Zero
fact n = mult n (fact (dec n))
Ответить с цитированием
Ads
Ответ

Метки
python

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переделать программу, используя функции. nikko2709 С/С++ 1 13.12.2011 22:36
Помогите переделать на muLISP Loona Lisp 0 14.06.2011 16:05
Помогите открыть в VisulC++ фото в формате jpeg используя путь из базы данных Access Garet Вопросы начинающих программистов 0 15.05.2011 19:59
Матрица. Помогите переделать программу. sveta11115 С/С++ 0 22.03.2011 21:13
Помогите переделать на базу данных salamandra91 Prolog 1 15.01.2011 23:36
Помогите переделать задачу из Turbo Prolog в Visual Prolog 5 imported_Anneta Prolog 3 23.12.2010 22:59
Помогите переделать программу из Turbo в SWI-PROLOG armoko Prolog 0 25.05.2010 13:46
Пожалуйста,помогите с решением логической задачи!Если можно,не используя спискт pavelr Prolog 10 11.03.2010 17:55
Задача про шахматы!Помогите, пожалуйста, переделать код! Katerina_Katerina Prolog 7 26.12.2009 08:36
Переделать девайс Blazern Моддинг 2 12.06.2008 01:55
Помогите переделать прогу на Прологе van_shev Prolog 2 20.06.2006 17:37
Помогите переделать програму c VПролог на СтронгбэрриПролог lilbo Prolog 0 07.06.2006 02:44



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов