Comparing #1949 (Version 3) and #5114 (Version 4)

Simplify code

Recursive Epistemology

Veritula implements a recursive epistemology. For a criticism to be pending, it can’t have any pending criticisms itself, and so on, in a deeply nested fashion.

ruby
def criticized? idea
pending_criticisms(idea).any?
end
def pending_criticisms idea
criticisms(idea).filter { |c| pending_criticisms(c).none? }
end
def criticisms idea
children(idea).filter(&:criticism?)
end

This approach is different from non-recursive epistemologies, which handle criticisms differently. For example, they might not consider deeply nested criticisms when determining whether an idea is currently criticized.

Recursive Epistemology

Veritula implements a recursive epistemology. For a criticism to be pending, it can’t have any pending criticisms itself, and so on, in a deeply nested fashion.

ruby
def should_adopt? idea
pending_criticisms(idea).none?
end
def pending_criticisms idea
criticisms(idea).filter { |c| should_adopt?(c) }
end
def criticisms idea
children(idea).filter(&:criticism?)
end

This approach is different from non-recursive epistemologies, which handle criticisms differently. For example, they might not consider deeply nested criticisms when determining whether an idea is currently criticized.

#5114​·​Dennis Hackethal​·​about 21 hours ago
1 comment: #5116