2011年12月18日日曜日

Digit

漢数字パーサをゴルフしてたので今日はDigit。

Digit

数字を表します。
Digitオブジェクトにこれを継承した0から9までの数字が定義されています。

toInt, toChar, toLong


Digits

DigitsにはdigitsとLongからDigit、DigitからLongへ変換するimplicit conversionが定義されています。

digitsは_0から_9までをもつListです。


MA#digits, MA#traverseDigits, MA#longDigits

digitsはコンテナが内包するCharをDigitへ変換します。
変換に成功した場合はSome、失敗の場合はNoneが返されます。

traverseDigitsは成功した場合、コンテナがSomeで包まれます。

longDigitsは内包されたDigitをLongへ畳み込みます。
この時先頭の0は無視されます。


最後にたかはしさんからforkしたコード。


ただDigitを使ってみたかっただけ。
数をListとして操作できるのも面白いなと思いました。

0 件のコメント:

コメントを投稿