alts! - это функция, которая принимает вектор каналов для приема из и/или каналов со значениями, которые должны быть помещены на них (в виде двухтонных векторов: [c v]). Вектор может быть динамически построен; вызов кода alts! может не знать, сколько каналов он будет выбирать среди (и действительно, это число не обязательно должно быть постоянным во всех вызовах).
alt! - это удобный макрос, который в основном действует как крест между cond и alts!. Здесь число "портов" (каналы или пары каналов + значения) должно быть известно статически, но на практике это довольно часто бывает, и синтаксис cond -подобный очень ясен.
alt! расширяется до несколько сложного выражения, используя alts!; помимо синтаксического удобства, он не предлагает дополнительных функций.