I create simple logic library for parsing text (part of this library in
archive by link below). But execution time of parsing text using it is
very painful.
Library contain LChar module that translate some function of original
Char module to nondetermistik variant, LList module - similary to List
and String module that incapsulate some string-specific operations - all
in nondeterministik way.
main.oz file contain simple use case of library - parsing the text such
"attr_name attribute values" to record property("attr_name", "attribute
values"). And such simple example work 35 second on my machine! After I
replace the realisation of Char module by content in char1.oz file, the
time grow short to 25 second. I think that problem in All procedure in
LList module:
proc {All List Predicate Result}
choice
List = nil Result = false
[] X in List = X|nil {Predicate X true} Result=true
[] X in List = X|nil {Predicate X false} Result=false
[] X T in
X|T=List
{Predicate X true}
{All T Predicate true}
Result=true
[] X T in
X|T=List
{Predicate X false}
Result = false
end
end
This predicate bind Result to true if all members of list obey to
Predicate and false if exist one or more members that not.
Archive with example:
http://www.4shared.com/file/120658649/438bf6be/logic.html
_________________________________________________________________________________
mozart-users mailing list
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users