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

Reply via email to