Int listesinin doğrudan yazdırıldığı herhangi bir işlev var mı? Hata ayıklama amaçları için int list yazdırmak zorundayım. Bunu kendi işlevlerimi yazarak başarabileceğimi biliyorum ama bunun başka bir yöntemi olduğunu bilmek isterim.sml olarak yazdırma int list
cevap
SML/NJ SML diğer bazı uygulamaları gibi oldukça baskı gibi birçok özellik yok ama onun PRINTCONTROL signature miktar esneklik: listeleri için
, onlar yazabilir noktaya gelmek. Örneğin
, varsayılan ayarlarla bu vardır:
Ama Repl size
Control.Print.printLength := 500;
ve sonra
Control.Print.linewidth := 80;
değerlendirmek durumunda:
Poly/ML yılındaHayır, SML'de dizelerden başka bir şey yazdırmanın yerleşik bir yolu yok. Kendi yardımcı programlarınızı yazıyorsunuz veya işlevlerinizi REPL içinde ayrı ayrı test edilebilecek daha küçük bileşenlere ayırıyorsunuz ve daha sonra otomatik olarak geri dönüş değeri elde edebileceksiniz. http://mlton.org/TypeIndexedValues#_signature:
kendi araçları oluşturmak istiyorsanız
, MLton wiki yerleşik türlerinin çoğu yazdırmak için, bağdaştırıcılarla küçük bir kütüphane kurmaya nasıl açıklayan bir sayfası vardır.val "[3, 1, 4]" =
let open Show in show (list int) end [3, 1, 4]
uygun oldukça desenli işlevini kullanarak en değerlerini yazdırır özel bir fonksiyon PolyML.print
yoktur. Standart ML'nin bir parçası değildir, bu nedenle PolyML
yapısındadır. İşlev polimorfik olabiliyorsa, tip kısıtlaması kullanmanız gerekebilir.
> fun f (x: int list) = (PolyML.print x;());
val f = fn: int list -> unit
> f [1,2,3,4];
[1, 2, 3, 4]
val it =(): unit
Hata ayıklayıcıyı kullanarak Poly/ML'de daha kapsamlı hata ayıklama bilgilerini alabilirsiniz. Bakınız http://www.polyml.org/documentation/Tutorials/Debugging.html.