Anonymous user
Define a primitive data type: Difference between revisions
→{{header|J}}
Line 1,167:
=={{header|J}}==
J excels in composition rather than permitting verb overloading.
<
nameClass_z_=: 4!:0
signalError_z_=: 13!:8
create_restrict_ =: monad define▼
NB. create a restricted object from an appropriate integer
'Value error. expected integer on [1,10]' assert 1 0 -: 1 11 le y
'Value error, non integral' assert (-: <.) y
Line 1,176 ⟶ 1,180:
)
add_restrict_=: monad define
if. 0 = nameClass<'value__y' do.
(value + value__y) conew 0 {:: coname''
else.
'value unavailable'signalError 21
end.
)
</lang>
<pre>
add__A 8
|value unavailable: signalError
| 'value unavailable' signalError 21
C=: add__A B
value__C
8
add__C B
▲ A =: 3 conew'restrict'
▲ A =: 3 conew'restrict'
|Value error. expected integer on [1,10]: assert
| 'Value error. expected integer on [1,10]' assert 1 0-:1 11 le y
|