হাস্কেল: স্টে স্ট্রিংয়ে রূপান্তর করা


198

আমি জানি আপনি এর Stringসাথে একটি সংখ্যায় রূপান্তর করতে পারেন read:

Prelude> read "3" :: Int
3
Prelude> read "3" :: Double 
3.0

তবে আপনি কীভাবে Stringকোনও Intমূল্য উপস্থাপন করবেন?

উত্তর:


286

বিপরীত readহয় show

Prelude> show 3
"3"

Prelude> read $ show 3 :: Int
3

38
@ লেগা: আপনি এটি দরকারী খুঁজে পেতে পারেন: haskell.org/hoogle/?hoogle=Int+-%3E+ স্ট্রিং
কেনেটিমে

3
@ কেনিটিএম প্রচুর লোকেরা এই লিঙ্কটিকে দরকারী বলে মনে করবে! একটি লিঙ্ক একা +1, তবে এটি কীভাবে ব্যবহার করবেন তা দেখানোর জন্য ... এটি +10 ধন্যবাদ :)
CoR

নোট করুন যে কয়েকটি সংস্থা / মানকগুলি তার চূড়ান্ত পলিমারফিজমের কারণে "শো" ব্যবহারকে দৃ strongly়ভাবে নিরুৎসাহিত করে। একটি টাইপ-নির্দিষ্ট ফাংশন (বা, সবচেয়ে খারাপ ক্ষেত্রে, শো এর চারপাশে মোড়ক) সহায়ক হবে।
জন ওয়াট

@ জোনওয়াট "মাইট" না, "হবে"। এই প্রশ্নের সাধারণতার স্তরে, আমি মনে করি না যে আপনার পরামর্শটি কার্যকর।
দ্বৈত

ইউএসইং সিস্টেমের কাজগুলি না করে ম্যানুয়ালি এটি করার কোনও উপায় আছে কি?
লেসোলোরাজানভ

4

চকের উত্তরের ভিত্তিতে একটি উদাহরণ:

myIntToStr :: Int -> String
myIntToStr x
    | x < 3     = show x ++ " is less than three"
    | otherwise = "normal"

নোট করুন যে showতৃতীয় লাইনটি সংকলন করবে না।


4

যে কেউ হ্যাস্কেল দিয়ে সবে শুরু করছে এবং কোনও আন্ত ছাপানোর চেষ্টা করছে, সেগুলি ব্যবহার করুন:

module Lib
    ( someFunc
    ) where

someFunc :: IO ()
x = 123
someFunc = putStrLn (show x)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.