SORU
30 Aralık 2009, ÇARŞAMBA


İyi Haskell kodlama standartları

Birisi Haskell için iyi bir kodlama standart bir bağlantı sağlamak olabilir mi? this this buldum ama kapsamlı olmaktan uzaktır. Bu HaskellWiki "" "" ve "sembolik telkin tanımlayıcı tanımlama kütüphane yazarlar için sadece bırakılmalıdır." dikkatli sınıfları kullanmak gibi taş gibi içeren bir söz değil

CEVAP
31 Aralık 2009, PERŞEMBE


Gerçekten zor bir soru. Cevaplarınız iyi bir şey açmak umarım. Bu arada, burada hata bir katalog ya da bulduğum diğer can sıkıcı şeyler yeni başlayanlar için kod. Bazı Kisielewicz puan Kornel bu Cal Tech stil sayfası ile örtüşüyor. Benim tavsiyem bazı her bit HaskellWiki gibi muğlak ve işe yaramaz "mücevher", ama umarım en azından daha iyi tavsiye edilir :-)

  • 80 sütunları sığacak şekilde kodunuzu biçimi. (İleri düzey kullanıcılar 87 ya da 88; o bastırıyor ötesinde bir tercih olabilir.)

  • let where bağlama maddeleri unutma tanımları karşılıklı olarak özyinelemeli bir yuva oluşturundeğilbirsıratanımlar.

  • where maddeleri, özellikle de kapsamlı fonksiyon parametreleri görmeleridir avantajı (güzel muğlak tavsiyeler al. Eğer gerçekten Haskell grokking, kod çok daha fazla let-ciltleri daha where-bağlamaları gerekirdi. Çok fazla.

  • Gereksiz parantez kaçının. Gereksiz parantez özellikle saldırgan olduğu bazı yerler vardır

    • Etrafında if bir ifade durumu (unreconstructed C programcısı olarak sana marka)

    • Kendini telkin operatör bağımsız bir işlev bir uygulama (Fonksiyon uygulama herhangi bir telkin operatör daha sıkı bağlar. Bu gerçek, her Haskeller beyninin içine yakılmalı, çok bizi dinozorlar APL. sağdan sola tarama kuralı vardı, aynı şekilde yandı.)

  • Telkin operatörleri boşluk koy. Bir demet değişmez, her virgül aşağıdaki boşluk koyun.

  • Eğer argüman programlama dilinde * sembolü ise bir fonksiyon ve argüman arasında bir boşluk olmasını tercih ederim.

  • $ operatör dikkatli parantez azaltmak için kullanabilirsiniz. . telkin $ arasında yakın ilişkinin farkında olun

    f $ g $ h x == (f . g . h) x == f . g . h $ x
    
  • Dahili Maybe Either türleri göz ardı yok.

  • Asla if <expression> then True else False; doğru kelime yazmak sadece <expression>.

  • Desen eşleştirme kullanabilirsiniz head tail kullanmayın.

  • Telkin nokta operatörü ile fonksiyon bileşimi göz ardı yok.

  • Satır sonları dikkatli kullanın. Satır sonları, okunabilir olmaları artırabilir, ama bir bedeli var: editör sadece 40-50 satır aynı anda görüntüleyebilir. Eğer büyük bir işlevi tek seferde okuyup anlamak istiyorsanız, Satır sonları aşırı etmemelisin.

  • Hemen hemen her zaman sonunda {- ... -} yorum satırı üzerinden çalışan -- yorum tercih ederim. Hazırladı açıklamaları büyük başlıkları-için uygun olabilir, hepsi bu.

  • Üst düzey açık tür bir işlevi, her bir imza ver.

  • Mümkün olduğunda, komşu hatlarında meydana gelen --, = çizgiler, işaretler ve hatta parantez ve virgül hizalayın.

  • Etkili, ben tarafından DZD Merkez, ben çok hafif tercih kullanın camelCase için verilen tanımlayıcılar ve short_name altını çiziyor yerel wherebağlı veya letbağlı değişkenler.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HowtoDrawAndPaint

    HowtoDrawAnd

    24 EKİM 2010
  • KIT KAT

    KIT KAT

    3 EKİM 2005
  • Make:

    Make:

    23 Mart 2006