Anonymous user
Define a primitive data type: Difference between revisions
→{{header|J}}: prior version could have been tricked by clever complex number such as 2ad113. Error messages improved.
(→{{header|J}}: prior version could have been tricked by clever complex number such as 2ad113. Error messages improved.) |
|||
Line 1,168:
J excels in composition rather than permitting verb overloading. Express a dyadic operation as verb__object1 object2 rather than object1 verb object2 . The example uses the verb ''add'' . The constructor, create, retains j's array data structure opposed to limiting to an atom.
<lang J>
NB. z locale by default on path.
type_z_=: 3!:0
nameClass_z_=: 4!:0
signalError_z_=: 13!:8
NB. create a restricted object from an appropriate integer
create_restrict_ =: monad define
'
'
value=:
)
add_restrict_=: monad define
if. 0 = nameClass<'value__y' do.
(value + value__y) conew 0
else.
'value unavailable'signalError 21
Line 1,199 ⟶ 1,195:
4 5 6
B =:
C=:
value__C
8 9 10
|Domain error: not on [1,10]: assert
|
| 'Value error. expected integer on [1,10]' assert 0-.@e.,(1 0-:1 11 le])&>y▼
(s:' symbol')conew'restrict'
|Domain error: expected integer: assert
</pre>
|