Haskell'Stream Fusion s nedir
Haskell Akış Füzyon nedir ve nasıl kullanırım?
CEVAP
Logan işaret eden gazete harika ama biraz zor. (Sadece öğrencilerime sor.) Ayrıca hakkında çok şey bu akışı füzyon nasıl çalışır '' ve sadece bir kısmını akışı füzyon nedir ve nasıl kullanabileceğinizi''.
Stream füzyon çözer bu sorunu yazılı olarak işlevsel kodları sık sık Ara listeler tahsis olduğunu, örneğin, düğüm sayıları sonsuz bir liste oluşturmak için yazabilirsin
nodenames = map ("n" ) $ map show [1..]
Saf kod tamsayılar [1, 2, 3, ...]
, dizeleri sonsuz bir liste ["1", "2", "3", ...]
ve isimleri sonsuz bir liste sonunda ["n1", "n2", "n3", ...]
sonsuz bir liste ayrılacak. Bu çok fazla ayırma.
Stream füzyon ne sonuç için gerekli olan tek ayıran bir özyinelemeli işlevini kullanan bir şeyin içine nodenames
gibi bir tanım çevirmek. Genel olarak, ara listelerinin ortadan ayırma denirormanların yok.
Stream füzyon kullanmak, yazmak gerekirnon-recursive fonksiyonlarakarsu füzyon kitaplığıGHC ticket 915 anlatılan işlevlerden(map
, foldr
, vb.) yerine açık özyineleme kullanmak. Bu kütüphane akışı füzyon sömürmek için yazılmış olan tüm Başlangıç fonksiyonları yeni sürümlerini içerir. Görünüşe göre bu şey bir sonraki DZD sürümü (6.12) haline getirmek için aday olduğunu ancak mevcut kararlı sürümü (6.10). Eğer kütüphane kullanmak istiyorsanız Porges cevabı güzel basit bir açıklaması vardır.
Eğer gerçekten akışı fusion çalışma şekli hakkında bir açıklama istiyorsanız, başka bir yazı çok daha zor olan soru---ama.
Haskell içinde Comonad bu typeclass ne...
Bir "kıvılcım" Haskell nedir...
Node.js için Haskell yanıtı nedir?...
&Quot nedir;@" sembol Haskell lis...
Ünlem işareti Haskell bildiriminde anl...