I would implement that like:<p><pre><code>    zip(names, 1...names.count).forEach { name, index in
        print(&quot;Person \(index) is called \(name)&quot;)
    }
</code></pre>
Or, in an ideal world:<p><pre><code>    zip(names, 1...names.count)
        .map({ name, index in &quot;Person \(index) is called \(name)&quot; })
        .forEach(print)
</code></pre>
Currently, that isn&#x27;t valid Swift, &quot;print&quot; can&#x27;t be used like that, though if you define a closure it works:<p><pre><code>    let printIt = { x in print(x) }
    
    zip(names, 1...names.count)
        .map({ name, index in &quot;Person \(index) is called \(name)&quot; })
        .forEach(printIt)
</code></pre>
I think that Swift <i>could</i> use = for equality, since assignments return Void and comparison returns Bool. Maybe it should.<p>But your argument boils down to &quot;if you can&#x27;t be clear everywhere, don&#x27;t be clear anywhere&quot;. That&#x27;s not a good goal.