sorear | . dmead: pong |

narain | is there any point defining something to be a monad if i may never need to use it as one? |

dmead | ping |

chessguy | @quote backwards |

lambdabot | No quotes match. My pet ferret can type better than you! |

procyon112 | chessguy: I'm just saying, that it may be possible to express the entire algorithm as a lazy list sorted by fitness.. at which point, it's more like fuzzy unification than GP. |

monochrom | monad is rather special - you will most likely want to use it as a monad in the near future. I would say define the monad. |

chessguy | procyon112: ohhhhhh, now i get what you're saying. sorry (light bulb goes off) |

dmead | it's just a jump to the left |

narain | monochrom: ok, now i'll have to be on the lookout for opportunities for using monadic operations |

chessguy | procyon112: mmm, i don't think that's likely to be very useful |

monochrom | heh, sounds like I've spewed a self-fulfilling prophecy! |

dmead | is a forumla a valid parameter to pass to a predicate? |

procyon112 | chessguy: so, being aware that we may be able to factor out primary tenets of what makes GP GP, we need to stop at that point, leave GP in place, and do the factorization on the side, as an option... otherwise our GP lib will be some other form of problem solving that is isomorphic to GP, but not useful to people who just want GP. |

chessguy | i don't think it is isomorphic |

procyon112 | chessguy: don't think it's isomorphic to what? |

chessguy | to GP |

procyon112 | chessguy: no.. my question was on the other side of the arrow :) You don't think GP is isomorphic to.... |

phoniq | foo a b = a ** b foo :: forall a. (Floating a) => a -> a -> a |

chessguy | ugh |

phoniq | how can i restrict this so that the first arg is integral? |

chessguy | i don't think GP is isomorphic to your zipWith think *thing |

int-e | phoniq: that will make them all integral |

chessguy | ?hoogle Integral |

lambdabot | Prelude.Integral :: class (Real a, Enum a) => Integral a Prelude.fromIntegral :: (Integral a, Num b) => a -> b |

int-e | phoniq: because the types are equal |

monochrom | dmead: in most logics no. but in most logics there is an expression language (function symbols, constants, vars) and any expression is fair game in predicate arguments, e.g., forall x. isChick( father(x) ), isChick predicate, father function |

phoniq | ah the type signature is just what ghci tells me |

dmead | ahh |

phoniq | what ought it be is the question... old man C is getting his ass kicked |

chessguy | procyon112: your zipWith thing basically says to generate all possible programs in random order and find the best one you can (correct me if i'm wrong). that's very different from what GP does |

phoniq | that's what i've managed to boil the problem down to. |

procyon112 | chessguy: I haven't invented the zipWith, that's just wild speculation, but I think parts of GP can be expressed lazily, to the point where anyone using the code would not recognize it as GP anymore. |

chessguy | perhaps |