Macro hygiene is the concept of macros that work in all contexts; they don't affect and aren't affected by anything around them. Ideally all macros would be fully hygienic, but there are lots of pitfalls and traps that make it all too easy to accidentally write unhygienic macros. This guide attempts to provide a comprehensive resource for writing the most hygienic macros.
First, a little aside on the details of Rust's module system, and specifically paths; it is
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{-# LANGUAGE GeneralizedNewtypeDeriving #-} | |
module SliderPuzzle where | |
import Prelude hiding (Either(..)) | |
import Data.Vector (Vector, (//), (!?)) | |
import qualified Data.Vector as Vec | |
import Control.Arrow (second, (***)) | |
import Control.Monad.State.Strict | |
import Data.Set (Set) | |
import qualified Data.Set as Set |
Twelve Go Best Practices
Francesc Campoy Flores Gopher at Google @francesc http://campoy.cat/+
- Best practices
This is not intended to be comprehensive or authoritative, just free online resources I've found valuable while learning more about Erlang.
- 0xAX's list of Erlang bookmarks
- Federico Carrone, Erlang Spawned Shelter
- Ivan Uemlianin's list of resources on various BEAM languages
- David Robakowski's curated list of awesome Erlang libraries, resources and shiny things
- Julius Beckmann's curated list of amazingly awesome Elixir and Erlang libraries, resources and shiny things