Thue-Morse: Difference between revisions
Content added Content deleted
No edit summary |
(→{{header|Excel}}: Added an Excel LAMBDA version.) |
||
Line 708: | Line 708: | ||
0110100110010110100101100110100110010110011010010110100110010110 |
0110100110010110100101100110100110010110011010010110100110010110 |
||
</pre> |
</pre> |
||
=={{header|Excel}}== |
|||
===LAMBDA=== |
|||
Binding the name '''thueMorse''' to the following lambda expression in the Name Manager of the Excel WorkBook: |
|||
(See [https://www.microsoft.com/en-us/research/blog/lambda-the-ultimatae-excel-worksheet-function/ LAMBDA: The ultimate Excel worksheet function]) |
|||
{{Works with|Office 365 betas 2021}} |
|||
<lang lisp>thueMorse |
|||
=LAMBDA(n, |
|||
APPLYN(n)( |
|||
LAMBDA(bits, |
|||
APPENDCOLS(bits)( |
|||
LAMBDA(x, |
|||
IF(0 < x, 0, 1) |
|||
)(bits) |
|||
) |
|||
) |
|||
)(0) |
|||
)</lang> |
|||
and also assuming the following generic bindings in the Name Manager for the WorkBook: |
|||
<lang lisp>APPENDCOLS |
|||
=LAMBDA(xs, |
|||
LAMBDA(ys, |
|||
LET( |
|||
nx, COLUMNS(xs), |
|||
colIndexes, SEQUENCE(1, nx + COLUMNS(ys)), |
|||
rowIndexes, SEQUENCE(MAX(ROWS(xs), ROWS(ys))), |
|||
IFERROR( |
|||
IF(nx < colIndexes, |
|||
INDEX(ys, rowIndexes, colIndexes - nx), |
|||
INDEX(xs, rowIndexes, colIndexes) |
|||
), |
|||
NA() |
|||
) |
|||
) |
|||
) |
|||
) |
|||
APPLYN |
|||
=LAMBDA(n, |
|||
LAMBDA(f, |
|||
LAMBDA(x, |
|||
IF(0 < n, |
|||
APPLYN(n - 1)(f)( |
|||
f(x) |
|||
), |
|||
x |
|||
) |
|||
) |
|||
) |
|||
)</lang> |
|||
{{Out}} |
|||
The formula in cell B2 below defines the array of 2^5 = 32 bits which populates the range '''B2:AG2''' |
|||
{| class="wikitable" |
|||
|- |
|||
|||style="text-align:right; font-family:serif; font-style:italic; font-size:120%;"|fx |
|||
! colspan="33" style="text-align:left; vertical-align: bottom; font-family:Arial, Helvetica, sans-serif !important;"|=thueMorse(A2) |
|||
|- style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff;" |
|||
| |
|||
| A |
|||
| B |
|||
| C |
|||
| D |
|||
| E |
|||
| F |
|||
| G |
|||
| H |
|||
| I |
|||
| J |
|||
| K |
|||
| L |
|||
| M |
|||
| N |
|||
| O |
|||
| P |
|||
| Q |
|||
| R |
|||
| S |
|||
| T |
|||
| U |
|||
| V |
|||
| W |
|||
| X |
|||
| Y |
|||
| Z |
|||
| AA |
|||
| AB |
|||
| AC |
|||
| AD |
|||
| AE |
|||
| AF |
|||
| AG |
|||
|- |
|||
| style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff" | 1 |
|||
| style="font-weight:bold" | Iterations |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
|- |
|||
| style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff" | 2 |
|||
| style="font-weight:bold" | 5 |
|||
| style="text-align:center; background-color:#cbcefb" | 0 |
|||
| style="text-align:center" | 1 |
|||
| style="text-align:center" | 1 |
|||
| style="text-align:center" | 0 |
|||
| style="text-align:center" | 1 |
|||
| style="text-align:center" | 0 |
|||
| style="text-align:center" | 0 |
|||
| style="text-align:center" | 1 |
|||
| style="text-align:center" | 1 |
|||
| style="text-align:center" | 0 |
|||
| style="text-align:center" | 0 |
|||
| style="text-align:center" | 1 |
|||
| style="text-align:center" | 0 |
|||
| style="text-align:center" | 1 |
|||
| style="text-align:center" | 1 |
|||
| style="text-align:center" | 0 |
|||
| style="text-align:center" | 1 |
|||
| style="text-align:center" | 0 |
|||
| style="text-align:center" | 0 |
|||
| style="text-align:center" | 1 |
|||
| style="text-align:center" | 0 |
|||
| style="text-align:center" | 1 |
|||
| style="text-align:center" | 1 |
|||
| style="text-align:center" | 0 |
|||
| style="text-align:center" | 0 |
|||
| style="text-align:center" | 1 |
|||
| style="text-align:center" | 1 |
|||
| style="text-align:center" | 0 |
|||
| style="text-align:center" | 1 |
|||
| style="text-align:center" | 0 |
|||
| style="text-align:center" | 0 |
|||
| style="text-align:center" | 1 |
|||
|} |
|||
=={{header|Factor}}== |
=={{header|Factor}}== |