(no subject)
Jan. 9th, 2004 02:12 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
А вот кто меня может просветить. Внятно. По возможности - ссылками на РУССКОЕ объяснение современных концепций,
принятых во функциональных языках программирования. А то я в своём развитии далее ЛИСПа и переводной книжки по ПЛЭННЕРУ не пошёл - а тут проект намечается, где, судя по всему в качестве инструмента будет уместен именно функциональный язычек какой-то.
принятых во функциональных языках программирования. А то я в своём развитии далее ЛИСПа и переводной книжки по ПЛЭННЕРУ не пошёл - а тут проект намечается, где, судя по всему в качестве инструмента будет уместен именно функциональный язычек какой-то.
Сомневаюсь, что есть перетолкования.
Date: 2004-01-08 11:19 pm (UTC)Основная идея -- что объекты неизменны. Напрочь. А изменение получается созданием нового из данных существующего.
Вторая идея -- что программы тоже есть объекты. В натуре. Так же, как есть неназванные объекты, могут существовать неназванные (и вообще толко что созданные) программы. И мы их можем применять к существующим данным (а можем и формально комбинировать - то есть создавать новые программы, комбинируя и анализируя существующие).
Третья -- что языки функциональные, то есть абсолютно воспрозводимые соотношения между множествами аргументов и результатов, то есть нет памяти между задействованиями.
Тема очень глубока. Я читал и классический Лисп одного финна, и стогий компромисс ГайСтила, и полупроцедурный бред от Столмэна, и знаменитую по Прологу от Ивана Братко, и смежные, полуСмолтоковую, переводную с японского -- про смолток-процессор Катану, и работы японцев, особенно ?Джона, что ли, Шапиро 1985 года по параллельному Прологу, и борландовский ужас около Пролога, и полуалгебраический труд по лямбда-функциям, их замыкании, классах и замыкании классов. По плэннеру вроде припоминаю книжку 1978 вроде года, эдакий недолисп с загнутыми пальцами кортежей.
Обращайтесь. Здесь.
Re: Сомневаюсь, что есть перетолкования.
Date: 2004-01-09 02:35 am (UTC)Re: Сомневаюсь, что есть перетолкования.
Date: 2004-01-10 01:27 am (UTC)В функциональных никакого сопоставления. Вообще, с точки зрения Вечного Пролога -- функциональные языки есть грязная проститутство.
Но. Идея набора (массива) как списка-структуры (ДВУХЧЛЕННОЙ) -- от Лиспа идёт. Забавно!
Re: Сомневаюсь, что есть перетолкования.
Date: 2004-01-12 01:18 am (UTC)Функциональное программирование основанно на понятии функции - единственный результат которой содерится в возвращаемом значении, которое определено однозначно.
Пролог (и некоторые другие языки - Mercurry, Curry) основан на более общем понятии - отношения.
И функциональное, и реляционное программирование иногда называют декларативным, подчеркивая его отличие от императивного.
Re: Сомневаюсь, что есть перетолкования.
Date: 2004-01-09 12:58 pm (UTC)no subject
Date: 2004-01-09 01:09 am (UTC)У меня на бумаге есть "Филд А., Харрисон П.", но на него уже очередь :-).
А что за задача, если не секрет?
no subject
Date: 2004-01-09 01:42 pm (UTC)А что такое Филд А., Харрисон П.?
Задача связана с дата-майнингом на базе данных чрезвычайно большого объёма и с очень развесистыми и разнообразными характеристиками объектов.
Т.е. нужно выносить суждения по принципу 'в озере Байкал в 2002 году уменьшилось поголовье омуля на 10%, Байкальский ЦБК внедрил новую технологию очистки воды в 2001, в окрестной тайге продолжают дохнуть лиственницы, роза ветров оттуда-то - значит, скорее всего гадит соседний металлургический комбинат, выпускающий сталь по устаревшей технологии'. Т.е. там предпологается громадное количество мелких частных правил и объём БД с фактами такой, что любой Пролог в ужасе прячется по углам.
no subject
Date: 2004-01-10 02:55 am (UTC)Если проблема в том, что в традиционных реализациях Пролога факты хранятся либо в тексте программы, либо в файлах особого формата, то, насколько я знаю, уже есть версии, позволяющие подключаться к любым реляционным БД и рассматривать хранящиеся в них данные как факты Пролога.
Я даже находил в интернете статью о реализации дата-майнинга именно на основе соединения не-прологовых БД и системы обработки на Прологе (к сожалению, было это давно и ссылка у меня не сохранилась).
Или это связано с особенностями работы интерпретатора?
no subject
Date: 2004-01-10 08:32 am (UTC)Да и большая часть правил сводится к сопоставлению двух списков - атрибутов задающих пару объектов. Мне кажется, такие вещи естественнее делать на чём-то типа лиспа.
no subject
Date: 2004-01-12 01:28 am (UTC)Мне кажется такая задача ближе к нечеткой логике. То есть чисто функциональные вещи (вроде Haskell) могут оказаться не эффективными.
Надо или разрабатывать свой framework (OCaml с его "макропроцессором" подходящий инструмент), либо искать нечеткую реализацию прологоподобного языка. Может быть можно найти готовыю оболочку экспертной системы.
А Пролог вполне может оказаться хорошим. Методов ограничения перебора в нем достаточно. Mercury (прологоподобный, но более сложный язык) показывает очень хорошую производительность.
no subject
Date: 2004-01-12 12:35 pm (UTC)