Паттерн матчинг и унификация из логического программирования
От: Chrome  
Дата: 16.05.11 12:41
Оценка:
Паттерн матчинг в функциональном программировании и унификация выражений из логического программирования – это концептуально одно и тоже?
Re: Паттерн матчинг и унификация из логического программиров
От: cvetkov  
Дата: 16.05.11 14:07
Оценка: +1
Здравствуйте, Chrome, Вы писали:

C>Паттерн матчинг в функциональном программировании и унификация выражений из логического программирования – это концептуально одно и тоже?

паттерн матчинг можно представить как частный случай унификации.
дальнейший ответ зависит от того какой смысл вы вкладываете в слово "концептуально".
Re[2]: Паттерн матчинг и унификация из логического программи
От: Chrome  
Дата: 16.05.11 14:47
Оценка:
Здравствуйте, cvetkov, Вы писали:

C>паттерн матчинг можно представить как частный случай унификации.

C>дальнейший ответ зависит от того какой смысл вы вкладываете в слово "концептуально".

Интересует, оправдано ли существование данного частного случая.
Почему не реализовать просто "унификацию"
и зачем выдумывать новый термин?
То есть, предвижу, ответом будет, что в частном случае что то делается более эффективно, но что именно? Вроде как логические языки — достаточно проработанная область, заведомо неприемлемых вещей там быть не должно.
Re[3]: Паттерн матчинг и унификация из логического программи
От: cvetkov  
Дата: 16.05.11 15:13
Оценка:
Здравствуйте, Chrome, Вы писали:

C>>паттерн матчинг можно представить как частный случай унификации.

C>>дальнейший ответ зависит от того какой смысл вы вкладываете в слово "концептуально".

C>Интересует, оправдано ли существование данного частного случая.

C>Почему не реализовать просто "унификацию"
C>и зачем выдумывать новый термин?
C>То есть, предвижу, ответом будет, что в частном случае что то делается более эффективно, но что именно? Вроде как логические языки — достаточно проработанная область, заведомо неприемлемых вещей там быть не должно.

для этого нужно чтобы в языке были мутабельные переменные. или как вы это себе представляете?
Re[4]: Паттерн матчинг и унификация из логического программи
От: cvetkov  
Дата: 16.05.11 15:14
Оценка:
C>>>паттерн матчинг можно представить как частный случай унификации.
C>>>дальнейший ответ зависит от того какой смысл вы вкладываете в слово "концептуально".

C>>Интересует, оправдано ли существование данного частного случая.

C>>Почему не реализовать просто "унификацию"
C>>и зачем выдумывать новый термин?
C>>То есть, предвижу, ответом будет, что в частном случае что то делается более эффективно, но что именно? Вроде как логические языки — достаточно проработанная область, заведомо неприемлемых вещей там быть не должно.

C>для этого нужно чтобы в языке были мутабельные переменные. или как вы это себе представляете?

плюс синтаксис для плейсхолдеров.
Re[3]: Паттерн матчинг и унификация из логического программи
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.05.11 00:21
Оценка:
Здравствуйте, Chrome, Вы писали:

C>Интересует, оправдано ли существование данного частного случая.

C>Почему не реализовать просто "унификацию"

Потому что это значительно менее эффективно.
И потому что общий случай дает изменение состояния, что не всегда бывает приемлемо.

C>и зачем выдумывать новый термин?


Другая концепция, другой термин.

C>То есть, предвижу, ответом будет, что в частном случае что то делается более эффективно, но что именно? Вроде как логические языки — достаточно проработанная область, заведомо неприемлемых вещей там быть не должно.


Что в них проработано? Их изобрели десятки лет назад и с тех пор они не используются в виду низкой производительности.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Паттерн матчинг и унификация из логического программи
От: cvetkov  
Дата: 17.05.11 07:06
Оценка:
Здравствуйте, VladD2, Вы писали:

C>>То есть, предвижу, ответом будет, что в частном случае что то делается более эффективно, но что именно? Вроде как логические языки — достаточно проработанная область, заведомо неприемлемых вещей там быть не должно.


VD>Что в них проработано? Их изобрели десятки лет назад и с тех пор они не используются в виду низкой производительности.


низкая производительгность фигня по сравнению с тем что они могут быть антиинтуитивны.
Re[4]: Паттерн матчинг и унификация из логического программи
От: Chrome  
Дата: 17.05.11 08:48
Оценка:
Здравствуйте, cvetkov, Вы писали:

C>для этого нужно чтобы в языке были мутабельные переменные. или как вы это себе представляете?


Честно говоря я не очень большой эксперт. А зачем там мутабельные переменные?
Мне представляется такая картина.
Записываем уравнение, куда входят связанные и несвязанные переменные.
В результате унификации несвязанные переменные получают значение.
Если нетрудно, поясните про мутабельньсть.
Re[5]: Паттерн матчинг и унификация из логического программи
От: cvetkov  
Дата: 17.05.11 10:07
Оценка:
Здравствуйте, Chrome, Вы писали:


C>Честно говоря я не очень большой эксперт. А зачем там мутабельные переменные?

C>Мне представляется такая картина.
C>Записываем уравнение, куда входят связанные и несвязанные переменные.
C>В результате унификации несвязанные переменные получают значение.
C>Если нетрудно, поясните про мутабельньсть.

паттерн матчинг
match A(B(a),b) = t

унификация
1)match A(B(1),b) = t
и в более интересном случае
2)
t1 = A(B(a),'b)
match t1 = t
где a это переменная у которой уже есть значение
и 'b это свободная переменная.

в 1 случае кажется все в порядке
во втором случе после оператора match переменная 'b должна получить значение.

если интересует только первый случай, то бывают guard conditions (не во всех языках они поддерживаются, но кажется их будет достаточно для замены)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.