Haskell 2010, birleştirilmiş dizgeye anlamıyla eşdeğer olduğunu garanti eder, ancak nasıl derlenmesi gerektiği hakkında söyleyecek hiçbir şeyi yoktur. Yine de, ghc-core
aracıyla kontrol etmek için yeterince kolay.
-- Test.hs
main = putStrLn $ "Hello " ++ "world"
ve biz ghc-core Test.hs
[1 of 1] Compiling Main (Test.hs, Test.o)
==================== Tidy Core ====================
Result size of Tidy Core = {terms: 19, types: 23, coercions: 9}
main2 :: [Char]
[GblId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=False,
ConLike=False, WorkFree=False, Expandable=False,
Guidance=IF_ARGS [] 60 0}]
main2 = unpackCString# "Hello world"
...
çalıştırmak ve dize Çekirdek ara dilde birleştirildi olduğunu görünce.
Düzenleme: bu özel program, derleyici bütün dizeleri için yapacağım garanti etmez birleştirilmiş dize ile bir çekirdek dökümü var diye, diğer cevaplar ile benim anlaşmayı vurgulanması. Haskell spec ile uyumlu olmak, işlerin nasıl derlendiği hakkında çok fazla bir şey ima etmez.
Dikkat:
sıfır genişlikli eşdeğer, basamak karakterleri sayısal kaçar ayrılması için yararlı olan
\&
olan ara çekirdek kodu yazdırmak için "çekirdek dökümü" kullanma hakkında :-) – DavidÇekirdeğe bakmak ve işlerin nasıl yürüdüğünü öğrenmek için ne kadar kolay bir yapay duyu taşıyabilirdim ... ama! Sık sık bu kadar zor olmamıştı. İlk başta sadece korkutucu. –