Вот, допустим, я задекларировал тип "Человек" от него унаследовал "Мужчина" и "Женщина", затем от "Женщина" унаследовал "Лена". Теперь я могу написать следующие декларации: Лена представитель типа человек? интерпретатор вычислит в истину, Лена представитель типа "Мужчина" -- вычислится в ложь,
Попробуйте написать это на каком-либо конкретном языке, поддерживающем ООП.
Чем это все, собственно говоря, отличается от логического программирования, с концептуальной точки зрения?
Закат Солнца вручную всегда возможен. Вопрос лишь в том, насколько это удобно.