Hello, 2014-12-17 17:34 GMT+01:00 David Chisnall <thera...@sucs.org>: > > On 17 Dec 2014, at 17:23, Johan Ceuppens <enrytheer...@gmail.com> wrote: > > > Hello, > > > > I am writing a small prolog system with a decision tree which > understands "not x" and "x" for now. This can be used in the CALayer as > said before by Ivan here. > > > > The interface is as follows : > > //make predicates which is an NSString > > OpalFuzzyPredicate *pred = [[OpalFuzzyPredicate alloc] init]; > > //initialize it with a string which in this case is multi-worded > > [pred initWithString:@"update full window"; > > Sending an init-family method to an object that has already been > initialised is usually undefined behaviour. > > I didn't know. I thought init was part of NSObject.
> > //so it becomes a compound, which gets parsed and > > //adds comp to compound DB and compiles it into the tree > > InferenceCompound *comp = [factory makeCompound:pred]; > > What is factory? In Objective-C classes are usually factories, there's > little need for the factory pattern in a language where class methods can > be overridden. > The factory pattern makes for a static if you like, it's interface is like : <code> @interface OpalFuzzyDTreeFactory { OpalFuzzyInference *_inference; } - (id) makeDTree; - (id) makeADT:(OpalFuzzyPredicate*)p with:(Class)adt; - (id) makeAtom:(OpalFuzzyPredicate*)p; - (id) makeVar:(OpalFuzzyPredicate*)p; - (id) makeNumber:(OpalFuzzyPredicate*)p; - (id) makeCompound:(OpalFuzzyPredicate*)p; - (id) compileToTree:(InferenceADT*)adt; //_inference wrapper - (id)createInferenceManipulator; @end </code> > > > > > pred = [[OpalFuzzyPredicate alloc] init]; > > //initialize it with a string which in this case is multi-worded > > [pred initWithString:@"not update full window"; > > Once again. And why would you want to do this rather than reuse > NSPredicate, which can already represent and operate on predicates? > > If it's in Foundation OK then. > > > > //so it becomes a compound, which gets parsed and > > //adds comp to compound DB and compiles it into the tree > > InferenceCompound *comp = [factory makeCompound:pred]; > > > > I will try to get this in if I can do it. > > Given your unwillingness to fully explain what you're doing and the > appalling quality of your code (some of the diffs you've posted obviously > wouldn't even compile due to mismatched braces, the rest is broken due to > poor understanding of Objective-C conventions), I'd be very hesitant about > your having commit access to a GNUstep repository until you've demonstrated > that: > > - You can communicate with other developers > - You can write useable code > > Don't worry, I'll do that off-list :-) > David > > -- Send from my Jacquard Loom > >
_______________________________________________ Gnustep-dev mailing list Gnustep-dev@gnu.org https://lists.gnu.org/mailman/listinfo/gnustep-dev