Esthetic numbers: Difference between revisions

m
Line 3,172:
"use strict";
 
// --------- ESTHETIC NUMBERS IN A GIVEN BASESBASE ---------
 
// estheticNumbersInBase :: Int -> [Int]
const estheticNumbersInBase = b => {
// An infinite sequence of numbers which
// are esthetic in the given base.
return tail(fmapGen(x => x[0])(
iterate(f)([, queue]) => {
const [num, lsd] = ) : queue[0];
)const
newDigits.flatMap( = [lsd - 1, lsd + 1]
) .flatMap(
d => [Tuple((numd *< b) +&& d >= 0) ? (d)]
queue.slice(1).concat( [d]
); : []
return Tuple(num )(;
 
const f = ([, queue]) => { return Tuple(num)(
const [num, lsd] = queue[0];.slice(1).concat(
const newDigits.flatMap(d => [
newDigits = [lsd - 1, lsd Tuple((num * b) + 1].flatMapd)(d)
d => (d < b && d >= 0]) ? (
[d])
) : []
);
};)(
 
return Tuple(num)(
queue.slice(1).concat(
newDigits.flatMap(
d => [Tuple((num * b) + d)(d)]
)
)
);
};
 
return tail(fmapGen(x => x[0])(
iterate(f)(
Tuple()(
enumFromTo(1)(b - 1).flatMap(
Line 3,206 ⟶ 3,204:
)
));
};
 
// ---------------------- TESTS ----------------------
9,655

edits