Информатика и вычислительная техника
Лабораторная
  • формат zip
  • размер 1.5 КБ
  • добавлен 11 мая 2010 г.
Лабораторная работа - Реализация работы с полиномами на функциональном языке HOPE
Реализованы все задачи из спика заданий:

1) Определить тип данных Polynom – представление полиномов от одной переменной - x. Для представления можно, например, использовать списки. Полином в виде списка можно представить как список коэффициентов или как список пар чисел – (коэффициент, степень).

Например, полином 2+x^3 будет иметь представление [2,0,0,1] в первом случае и [(2,0), (1,3)] – во втором.

Во втором случае все операции будут реализовываться гораздо проще, если поддерживать инвариант представления, гарантирующий, что все пары упорядочены по возрастанию степеней.

2) Реализовать операции над полиномами: PolyAdd – сложение, PolySub – вычитание, PolyMul – умножение.

3) Реализовать функцию PolyEval(Polynom,num) – значение полинома в точке. Например, PolyEval(1+x^2,2) = 1+2^2 = 5

4) Реализовать функцию преобразования полинома в строку PolyToStr.

Например, для первого представления, PolyToStr([1, -2,0,1])="1-2*x+x^3"

5) Реализовать функцию дифференцирования полинома DerivePoly

Например, для первого представления, DerivePoly([1, -2,2,1])=[-2,4,3]

6) Реализовать функцию преобразования строки в полином PolyFromStr.

Например, для первого представления, PolyFromStr("1-2*x+x^3+-3*x")=[1, -5,0,1]

7) Упростить выражение ( (1+x+2*x^2-3*x^3+4*x^4-5*x^5)*( 6+5*x+4*x^2+3*x^3+2*x^4+x^5)-(1+x+x^2+x^3+x^4) )'

Для реализации выбран вариант с простыми списками (список коэффициентов)
Похожие разделы
Смотрите также

Городняя Л.В. Основы функционального программирования

  • формат pdf
  • размер 1.13 МБ
  • добавлен 28 января 2011 г.
М.: Изд-во "Интернет-университет информационных технологий - ИНТУИТ. ру", 2004. - 280 c.: ил. Студенты познакомятся с основами символьной обработки информации, слабо отраженными в отечественной литературе, а также с эффективными методами преобразования информации, реализация которых требует многоуровневого обобщения и абстрагирования, что наиболее естественно выражается в терминах функционального программирования. Функциональное программирование...

Журнал - Практика Функционального Программирования 2009 № 1

  • формат pdf
  • размер 1.42 МБ
  • добавлен 16 января 2011 г.
Первый (пилотный) номер нового научно-практического журнала по функциональному программированию «Практика Функционального Программирования». Содержание: Лев Валкин. От редактора. Сергей Зефиров. Лень бояться. Роман Душкин. Функции и функциональный подход. Евгений Кирпичёв. Изменяемое состояние: опасности и борьба с ними. Дмитрий Астапов. Давно не брал я в руки шашек. Dan Piponi. Моноиды в Haskell и их использование. Алексей Отт. Обзор литератур...

Курсовая работа - Поиск кратчайшего пути в лабиринте

Курсовая работа
  • формат doc
  • размер 42.56 КБ
  • добавлен 29 мая 2010 г.
Курсовая работа. По по предмету конструирование программ и языки программирования на тему: Поиск кратчайшего пути в лабиринте. Постановка задачи. Проектирование программы. Реализация программы. Модуль GRAPHICA. Модуль SHORTWAY. Модуль MOUSE. Описание работы программы. Методика и результаты тестирования. задачи. 22 стр.

Курсовой проект - Компилятор Lisp в промежуточный код RISC-архитектуры

Курсовая работа
  • формат txt, pdf
  • размер 264.34 КБ
  • добавлен 02 ноября 2009 г.
Задача: Написать программу с нетривиального подмножества произвольного диалекта Лиспа (Lisp) в промежуточный код RISC-архитектуры Компилятор --- это программа, предназначенная для трансляции высокоуровневого языка в абсолютный (машинный) код или, иногда, в язык ассемблера. Входной информацией для компилятора (исходный код) является описание алгоритма или программа на проблемно-ориентированном языке, а на выходе компилятора — эквивалентное опи...

Лабораторная работа - Отложенные вычисления и ленивые списки в Лиспе. Нисходящий разбор по заданной LL(1)-грамматике

Лабораторная
  • формат pdf, txt
  • размер 776.61 КБ
  • добавлен 02 ноября 2009 г.
Задача: Написать программу, эмулирующую поведение детерминированного МП-автомата, составленного по заданной LL(1)-грамматике. Проверку принадлежности строки языку выполнить в виде поиска допускающего состояния в истории вычислений автомата. Историю вычислений реализовать в виде отложенного списка, то есть не допускается одновременное хранение в памяти всех промежуточных состояний автомата. Теория: Нисходящий синтаксический анализ осуществляется...

Лабораторная работа на языке Лисп (Lisp) - Списки

Лабораторная
  • формат doc
  • размер 40.5 КБ
  • добавлен 24 декабря 2010 г.
НГТУ Тема работы: Изучение рекурсивных структур языка на примере списка. В программе реализованы такие функции, как: Вывод списка на экран Вставка элемента по номеру Удаление элемента по номеру Интерактивность реализована при помощи меню.

Лекция - Функциональное программирование

Статья
  • формат doc, pdf
  • размер 3.21 МБ
  • добавлен 03 октября 2011 г.
Содержание. Парадигма программирования. Функциональные языки. Свойства функциональных языков. Быстрая сортировка Хоара на C. Быстрая сортировка Хоара на языке Haskell. Ленивость и нестрогость. Немного о популярном языке. Каррирование (карринг). Определение функций. Рекурсия. Использование списков. Сопоставление с образцом. Сортировка вставкой. Быстрая сортировка. Типизация. Использование ?-исчисления. ?-функция. Реализации Haskell. Автор: проф....

Ленивый интерпретатор языка HOPE

  • формат exe, pdf
  • размер 442.5 КБ
  • добавлен 11 мая 2010 г.
Hope - функциональный язык программирования, разработанный в начале 1980-х годов; является предшественником языков Miranda и Haskell. Hope - очень простой язык и в то же время содержит все важные особенности функциональных языков. Широкого применения не имеет, используется для обучения функциональному программированию. Учебник Филда и Харрисона [Филд А., Харрисон П. Функциональное программирование. М., Мир, 1993. ], использующий этот язык - одна...

Реферат - Общие сведения о функциональном программировании

Реферат
  • формат doc
  • размер 164.8 КБ
  • добавлен 14 ноября 2009 г.
Реферат. Общие сведения о функциональном программировании. Предисловие. Введение. Общие сведения о функциональном программировании. История функционального программирования. Основы функционального программирования. Краткость и простота. Строгая типизация. Модульность. Функции — это значения. Чистота (отсутствие побочных эффектов). Отложенные (ленивые) вычисления. Основы работы с HUGS 98. Панель инструментов HUGS 98. Команды консоли HUGS 98. Допол...

Hughes J. The Design of a Pretty-printer Library

Статья
  • формат pdf
  • размер 331.67 КБ
  • добавлен 05 марта 2011 г.
Статья одного из пропагандистов ФП о разработке библиотеки комбинаторов вывода. Реализация осуществлена на языке Haskell. Краткое содержание: Introduction A Preview of the Pretty-printing Library Deriving Functional Programs from Specifications Designing a Sequence Type Implementing Monads Monads for Backtracking Specifying Pretty-printing Implementing Pretty-printing: A Term Representation Optimized Pretty-printing: A Term Representation A Con...