2013-12-18 25 views
5

私はHaskellで私の最初のいくつかのステップを踏んでおり、文字列を整数に変換しようとしていますが、管理していません。私は同様の質問を見てきましたが、私はまだよく分かりません。Haskell String-> Int型変換

私がしたいのは、変換することです。 '6'または"271"を整数に、つまり6または271にそれぞれ設定します。これはどうすればいいですか?

アナログは、Pythonの場合と同じように、これを簡単に行うことができます。 int("2723")はジョブを完了します。

+2

あなたが探しているのは、[読み取り](http://hackage.haskell.org/package/base-4.6.0.1/docs/Prelude.html#v:read) – DiegoNolan

+2

Googleの最初の結果 "haskell string to int "は、' read'を使う方法を説明する[stackoverflow](http://stackoverflow.com/questions/2468410/convert-string-to-integer-float-in-haskell)の投稿です。 – bheklilr

答えて

10

文字列が有効な整数であることがわかっている場合や、そうでない場合は吹き消しても構いませんが、readが動作します。 Haskellはいくつかの他の方法を持っている場合は、必ず、これを行う必要はありません

main :: IO() 
main = do 
    let x = read "271" :: Integer 
    print x 

:あなたはHaskellの型クラスに慣れていない場合は、同じようにあなたがそれを読みたいどのようなタイプはHaskellを伝えるために持っているかもしれないことを知っていますあなたがそれを使って算術演算を進めるのと同じように、あなたが望むタイプを知っている。

文字列が有効な番号であるかどうかわからない場合は、最新バージョンのベース(when when)にはreadMaybeというファンクションが含まれています。このファンクションは、読み込み可能な整数でないと安全にNothingを返します。

+0

ありがとう、私の質問は重複していますが、答えはすでに提供されています。他の方法でリソースにリンクできますか? (Int - > String?) – Newb

+0

@Newbそのためには['show'](http://hackage.haskell.org/package/base-4.6.0.1/docs/Prelude.html#v:show)が必要です。 – Onyxite

+0

@Newb 'read'の反対は' show'です。ほとんどのチュートリアルでは、これらの機能をかなり早い段階でカバーしていますが、これまで見たことはありますか?それはすぐにダイビングしようとする前にいくつかを介して作業することが最善の可能性があります。 – bheklilr

関連する問題