kafam karıştı. Ben print
kullanmaya çalışıyorum ama insanlar putStrLn
geçerlidir biliyorum. Aralarındaki gerçek farklılıklar nelerdir?Baskı ve putStrLn arasındaki fark Haskell
print $ function
putStrLn $ function
kafam karıştı. Ben print
kullanmaya çalışıyorum ama insanlar putStrLn
geçerlidir biliyorum. Aralarındaki gerçek farklılıklar nelerdir?Baskı ve putStrLn arasındaki fark Haskell
print $ function
putStrLn $ function
fonksiyon putStrLn
bir yeni satır karakteri ile bir String
alır ve ekrana görüntüler ( yeni L i n e ardından Str ing koymak).
Yalnızca String
s ile çalıştığından, genel bir deyim, herhangi bir nesneyi almak, onu String
'a dönüştürmek ve görüntülemek için putStrLn
uygular. Bir String
Bir nesneyi dönüştürmek için jenerik bir yol show
fonksiyonu ile, yani, bu dönüştüren bir işlevi tanımlamak için çok büyük bir streç olmadığını fark kez kodunuzu
putStrLn (show 1)
putStrLn (show [1, 2, 3])
putStrLn (show (Just 42))
bir sürü sona ereceğini bir String
ve tek adımda tam print
işlevi budur
print x = putStrLn (show x)
dizesini görüntüler.
'putStrLn' print' olamaz' oysa "я" gibi olmayan ASCII karakterleri gösterebilir. Nedenini neden bilmiyorum. "PutStrLn" я "' vs "print" я "' ı deneyin. – CMCDragonkai
Ben cevap vermek nedeni olur @CMCDragonkai. 'Print' fonksiyon show'' çıkışında 'putStrLn' çağırır ve' show' fonksiyonları onları görüntülemek için onların unicode temsil dizeleri dönüştürür. 'Я' (Kiril harf "ya") unicode noktası U + 044F veya ondalık olarak 1103'tür, bu yüzden "я" çıktılarını gösterir "' \ "\\ 1103 \" "' - bu ne yedi karakterden oluşan diziyi elde etmek için ghci yazmalıydı. "\ 1103" '(dene!) –
Bu, genel olarak metinle çalışırken 'putStrLn' kullanmak daha iyi olur mu? – CMCDragonkai
'print = putStrLn. show ' – Satvik
' Yazdır 3 ',' putStrLn 3 ', 'print' üç '', 'putStrLn' üç' 'ghci çalıştıran denediniz mi? Bu gerçekten biraz deneme ile cevaplanabilen bir sorudur. –