2017年2月10日金曜日

開発環境

関数プログラミング入門(Richard Bird (著)、山下伸夫 (翻訳)、オーム社)の第2章(単純なデータ型)、2.2(文字)、練習問題2.2.1、2.2.2を取り組んでみる。

練習問題2.2.1、2.2.2

コード(Emacs)

-- 2.2.1
import Data.Char

nextlet :: Char -> Char
nextlet c
  | c == 'Z' = 'A'
  | c == 'z' = 'a'
  | otherwise = chr ((ord c) + 1)

digitval :: Int -> Char
digitval k = if 0 <= k && k <= 9
             then chr ((ord '0') + k)
             else error "Invalid argument"
               

入出力結果(Terminal, ghci)

$ ghci sample2.hs
GHCi, version 8.0.2: http://www.haskell.org/ghc/  :? for help
[1 of 1] Compiling Main             ( sample2.hs, interpreted )
Ok, modules loaded: Main.
*Main> nextlet 'a'
'b'
*Main> nextlet 'z'
'a'
*Main> nextlet 'A'
'B'
*Main> nextlet 'Z'
'A'
*Main> digitval 0
'0'
*Main> digitval 1
'1'
*Main> digitval 9
'9'
*Main> digitval 10
*** Exception: Invalid argument
CallStack (from HasCallStack):
  error, called at sample2.hs:13:19 in main:Main
*Main> :q
Leaving GHCi.
$

0 コメント:

コメントを投稿