Skip to content

Instantly share code, notes, and snippets.

View oignonasappy's full-sized avatar

oignon oignonasappy

View GitHub Profile
/**
* @param {number} initialization
* @param {Function} condition predicate
* @param {Function} afterthought
* @param {Function} f
* @returns The last value that was not operated on by f
*/
const fFor = (initialization, condition, afterthought, f) => {
if (!condition(initialization)) return initialization;
f(initialization);
const targetDate = "2025-08-03 10:55:00";
const remainDays = Math.floor(
(new Date(targetDate).getTime() - new Date().getTime())
/
(1000 * 60 * 60 * 24)
);
@oignonasappy
oignonasappy / naturalHarmonics.js
Created January 31, 2026 13:50
ナチュラルハーモニクスが鳴らせるフレット番号を計算する
const count = 16;
const result = Array.from({length:count},(_,k)=>k+1).map(n=>-12*Math.log2(1-1/n));
@oignonasappy
oignonasappy / whitespace.css
Created January 31, 2026 13:46
Obsidianで末尾の改行を表示するCSSスニペット
.cm-trailing-space-new-line::before {
content: "↵";
position: absolute;
opacity: 0.5;
}
[...document.querySelector(/* css query */).children]
function trampoline(f) {
return (...args) => {
let result = f(...args);
while (typeof result === 'function') {
result = result();
}
return result;
};
}
UnaryOperator<Integer> fact = new UnaryOperator<>() {
@Override
public Integer apply(Integer n) {
return ((Function<UnaryOperator<Integer>, UnaryOperator<Integer>>) self -> x -> (x <= 1) ? 1 : x * self.apply(x - 1)).apply(this).apply(n);
}
};
import java.util.Arrays;
final class HzExchange {
/**
* Suppresses default constructor, ensuring non-instantiability.
*/
private HzExchange() {
}
@oignonasappy
oignonasappy / generate-stacked-chord-frequency.js
Last active January 31, 2026 13:32
平均律と純正律の堆積和音の周波数を生成するジェネレータ
function* generateJustIntonationFrequency(count = 1, start = 440, numerator = 3, denominator = 2) {
let hz = start;
let i = 0
while (i++ < count) {
yield hz;
hz *= numerator / denominator;
}
}
@oignonasappy
oignonasappy / gist:016cae54e932d87aae54a5647221e048
Created January 31, 2026 13:26
Delete block comment asterisk Regex
^\s*\*\s*