我一直试图通过查看一些高尔夫问题来锻炼我的Perl 6排。其中之一涉及提取一个整数的位。我一直没有想出一个简洁的方式来写这样的表达。Perl6-ish表达式的整数位
我的“最佳”尝试到目前为止,使用2000
作为数字。我不在乎最重要还是最不重要。
数值表达式:
map { $_ % 2 }, (2000, * div 2 ... * == 0)
递归匿名子:
{ $_ ?? ($_ % 2, |&?BLOCK($_ div 2)) !!() }(2000)
转换为字符串:
2000.fmt('%b') ~~ m:g/./
其中,第一感觉干净给我,但能够在一个步骤中生成比特,而不是通过内部映射来真的很棒调解列表。
使用单一表达式,是否有更简洁,更短,和/或更习惯的方法来获取位? (也就是说,无需编写命名函数。)