Welche allgemeinen Tipps haben Sie zum Golfen in Nim ? Ich suche nach Ideen, die auf Code-Golf-Probleme angewendet werden können und die zumindest auch etwas spezifisch für Nim sind (zB "Kommentare entfernen" ist keine Antwort).
Bitte posten Sie einen Tipp pro Antwort.
max a,b
sogar (manchmal) funktioniert.Verwenden Sie das
future
ModulDas
future
Modul enthält zwei Hauptfunktionen zum Speichern von Bytes: Lambdas und Listenverständnis. Lambdas sind äußerst nützlich.Zum Beispiel:
kann dazu verkürzt werden:
das spart ein Byte. Beachten Sie jedoch, dass Lambdas nicht außerhalb einer Parameterliste verwendet werden können. Um Ihren Code zu testen, müssen Sie Folgendes tun:
Mit dem
future
Modul können auch Listenverständnisse verwendet werden. Dieser Code gibt beispielsweise eine seq (@[...]
) aller Quadrate aus, die kleiner als 100 sind und durch 4 teilbar sind:quelle
any
anstelle von verwenden könnenstring
(ich gehe davon aus, dass Sie den längsten Typnamen gewählt haben), dies spart jedoch trotzdem.any
, danke für den Tipp! Sie sollten das als Antwort posten.proc(s:any):any=s&", world!"
, indem Sie das<space>f
für einen anonymenproc
Nicht signierte Operatoren
Wenn Sie mit nichtnegativen Ganzzahlen arbeiten, ist es manchmal besser, vorzeichenlose Operatoren zu verwenden. Verwenden Sie nach Möglichkeit
/%
und%%
anstelle vondiv
undmod
.quelle