С Новым годом! Форум программистов, компьютерный форум, киберфорум
Haskell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
7 / 7 / 4
Регистрация: 08.10.2012
Сообщений: 93

Как запустить данные функции?

29.10.2012, 20:29. Показов 3226. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Задание следующее

Теоретически возможно, хотя и неэффективно, определить целые
числа с помощью рекурсивных типов данных следующим образом:
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, вычисляющую факториал.

Нашёл в интернете код к этому заданию
Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
data Number n = Zero | Next n (Number n)
 
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 _) _)
Засунул в файл func.hs
Запускаю его, а как обратиться к каждой из функций не знаю

Подскажите, что вводить в каждую функцию? какие параметры передавать?
Заранее спасибо!

Добавлено через 22 минуты
Тот код неверный
Вот правильный

Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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))
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.10.2012, 20:29
Ответы с готовыми решениями:

Как запустить данные функции?
Подскажите, что вводить в каждую функцию? какие параметры передавать? Заранее спасибо! определить целые числа с помощью рекурсивных...

Как запустить несколько асинхронных сокетов и принять данные от них?
Уважаемые форумчане помогите пожалуйста, есть пример получения html страницы: using System; using System.Net; using...

Как запустить процесс и затем ввести данные в поток stdin?
После выполнения команды, далее выводится требование ввести пароль. А как затем ввести этот пароль программно? exec('pg_dumpall', { ...

1
Эксперт функциональных языков программированияЭксперт по математике/физике
4312 / 2104 / 431
Регистрация: 19.07.2009
Сообщений: 3,204
Записей в блоге: 24
30.10.2012, 13:59
Все функции имеют тип Number -> Number
Можно в интерпретаторе написать
Code
1
fact (Next$ Next$ Next$ Zero)
Должно вывести 6 (прописью).
Если компилируешь его, то нужно указать точку входа:
Haskell
1
2
main :: IO ()
main = print$ fact$ Next$ Next$ Next$ Zero
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.10.2012, 13:59
Помогаю со студенческими работами здесь

Как в Delphi запустить другую программу и взять от туда данные
Как в Delphi запустить другую программу и взять от туда данные. Пример: В программе при нажатии кнопки открывается другая программа, а...

Как запустить командную строку, выполнить команду и считать полученные данные
Добрый вечер. Подскажите как запустить командную строку, выполнить команду и считать полученные данные?

Как мне запустить внешнюю программу и получить из нее выходные данные?
Как мне запустить внешнюю программу и получить из нее выходные данные?

Как запустить несколько экземпляров функции
Здравствуйте! Я хочу запускать несколько экземпляров функции Pi_num__idea2 с разными параметрами, использую несколько процессов и каждый...

как запустить выполнение функции по графику
добрый день. мне нужно в Access запустить выполнение функции с определенной периодичностью, по графику. Как это сделать не знаю.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru