Yes, something on those lines. A standard script file on these as part of core libraries will be good.
Regards, Yuva On 6/14/09, Sherlock, Ric <[email protected]> wrote: >> From: Raul Miller >> Yuvaraj Athur Raghuvir wrote: >> > Is there a J idiom / verb that implements a design-by-contract or >> > input partameter type checking? >> >> Do you mean something like this? >> >> contract=:1 :'[ ass...@u' >> rawtypesmatch=: -:&(3!:0) >> >> isboxed=: a:&rawtypesmatch contract >> > > Extending Raul's idea: > ranksmatch=: -:&(#...@$) > rankstypesmatch=: ranksmatch *. rawtypesmatch > > isIntAtom=: 3&rankstypesmatch contract > isIntList=: 3 4&rankstypesmatch contract > isFloatList=: 3.1 4.2&rankstypesmatch contract > > isIntAtom 9 > 9 > isIntAtom 9 2 > |assertion failure: assert > | isIntAtom 9 2 > isIntAtom 9.4 > |assertion failure: assert > | isIntAtom 9.4 > isIntList 7 > |assertion failure: assert > | isIntList 7 > isIntList ,7 > 7 > isFloatList 4 5.1 > 4 5.1 > > These are problems though: > > isIntAtom 1 > |assertion failure: assert > | isIntAtom 1 > isFloatList 4 5.0 > |assertion failure: assert > | isFloatList 4 5 > > Might be safer to go back to using isInteger etc. than just checking > matching type. > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
