Middle three digits: Difference between revisions

Content added Content deleted
m (→‎{{header|J}}: fix reference to len and simplify)
Line 192: Line 192:
=={{header|J}}==
=={{header|J}}==
'''Solution:'''
'''Solution:'''
<lang j>asString=: ":"0
<lang j>asString=: ":"0 NB. convert vals to strings
getPfxSize=: [: -: 3 -~ # NB. get size of prefix to drop before the 3 middle digits
noNeg=: -.&'_'
getMid3=: (3 {. 'err' ,~ ([: -: 3 -~ len) }. ]) :: ('err'"_)
getMid3=: (3 {. 'err' ,~ getPfxSize }. ]) :: ('err'"_) NB. get 3 middle digits or return 'err'
getMiddle3=: getMid3@noNeg@asString</lang>
getMiddle3=: getMid3@asString@:|</lang>
'''Example:'''
'''Example:'''
<lang j> vals=: 123 12345 1234567 987654321 10001 _10001 _123 _100 100 _12345 1 2 _1 _10 2002 _2002 0
<lang j> vals=: 123 12345 1234567 987654321 10001 _10001 _123 _100 100 _12345 1 2 _1 _10 2002 _2002 0
Line 216: Line 216:
err
err
err</lang>
err</lang>

=={{header|OCaml}}==
=={{header|OCaml}}==