Нечеткая логика. F # не предоставляет никаких типов для реализации вычислений нечеткой логики "из коробки", но, безусловно, возможно использовать F # в этой области. Краткость F # и способность определять пользовательские перегруженные операторы должны сделать код, основанный на нечеткой логике, довольно приятным. Я сделал быстрый поиск и обнаружил несколько статей, реализующих нечеткую логику в F #:
Пролог это немного другой вопрос. Сила (а также и слабость) Пролога в том, что он имеет обратную историю, встроенную непосредственно в язык. Это делает его очень удобным для реализации алгоритмов поиска, основанных на возврате, но это также ограничение.
F # не имеет прямой поддержки обратного отслеживания, но довольно просто написать алгоритмы, основанные на обратном отслеживании, используя recursion (который является основным механизмом потока управления как в F #, так и в Prolog).
Также возможно реализовать предметно-ориентированный язык для логического программирования на F #. Это означает, что вы будете реализовывать что-то вроде Prolog в F #, а затем писать свои алгоритмы поиска, используя этот мини-язык в F # (возможно, при необходимости используя другие функции F #). Вы можете найти больше информации о подобных проблемах в этом вопросе .