Comment detail

文字列の反転 (Nested Flatten)
Haskellでは文字列は文字のリストにすぎませんので
「文字列が構築されているなら」、reverse で反転できます。
1
2
reverseString :: String -> String
reverseString = reverse
補足です

ghcではソースコードはUTF-8で書かれていることを前提とします.
したがって,日本語文字列リテラルはUTF-8で書かなければなりません.
コメントについても,日本語でのコメントを書きたければ,UTF-8で
書いておく必要があります.

さらにghcでは文字は内部的にはUCS4で表現されているといってよいのですが,
エンコーディングを変換する機構が標準では提供されていません.
外部から文字列データを読み込み,それを逆転し,外部へ出力するためには
エンコーディングを変換する機構を自前で用意するか,それ用のライブラリ
モジュールを使う必要があります.
HackageDBにある utf8-stringというライブラリを使う。
ソースコードはUTF8,U.putStrLnは文字列をUTF8バイト列に変換して出力する
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
module Main where
import qualified System.IO.UTF8 as U

reverseString :: String -> String
reverseString = reverse

main :: IO ()
main = do { U.putStrLn $ reverseString "Hello"
          ; U.putStrLn $ reverseString "こんにちは"
          ; U.putStrLn $ reverseString "濁点(だくてん)"
	  }

{-
*Main> :main
Loading package utf8-string-0.1 ... linking ... done.
olleH
はちにんこ
)んてくだ(点濁
-}

Index

Feed

Other

Link

Pathtraq

loading...