nekoTheShadow’s diary

IT業界の片隅でひっそり生きるシステムエンジニアです(´・ω・`)

scheme

回文数かどうかを判定したい。

書き終わって気が付いたのですが、"palindoromic"ではなくて"palindromic"ですね。文章はおろかソースコードまですべて間違ったつづりになっています……。機会があれば修正します。すみません(´・ω・`) とりわけProject Eulerを解いていると頻繁に要求される…

「ソモスの数列」(でいいのかな?)という数列があるそうです。

いつもどおり(?)インターネットを漂流していると、somos sequence(以下「ソモスの数列」)なるものを見つけました。より詳しいことはここを参照してほしいのですが、わたしなりに簡単に要約してみると――4以上の整数kについて次のような漸化式/数列を考えます…

CodeIQ「『セカンド・イクエイション』問題」に参加しました。

タイトルのとおり、CodeIQの「『セカンド・イクエイション』問題」の掲載期間が終了したということで、わたしの提出コードをさらしておきたいと思います。使用言語はRuby。1回の提出で通った記憶があります(自動採点なので忘れがち)。 アルゴリズムについて…

count関数を作っておおざっぱな計測を実行してみる。

リストの要素を検査して述語が#tを返す要素を数える関数――以下count関数と称する――がscheme/srfi/gaucheにはなさそうだったので、しこしこ実装することになったのですが――その際いくつも方法を思いついたため、どの方法が効率的なのか、おおざっぱに計測して…

素数判定と素数列の列挙。

まずは素数判定 ; 指定された整数が素数かどうかを判定する。戻り値はbool。 ; 注意としては整数以外を指定しないでください。 ; (prime? 2) => #t ; (prime? 4) => #f (define (prime? number) (cond ((< number 2) #f) ; 負の数ならびに1ならば素数ではな…

「インデックス付きmap」が必要だったので……

Rubyでいうところのmap.with_index、すなわち「インデックス付きmap」がSchemeのソースコードを書いている最中に必要だったので、マクロにより実装しました。 ; procの第1引数にインデックス(0..*)が入るようなmap ; リストは1つ以上指定できるが、ひとつで…

Schemeでsplit!

指定されたデリミタを区切り文字として文字列を分割、リストに格納する関数――いわゆるsplit関数が入用になることがあり、しこしこ書きました。せっかくなのでブログにはりつけておきます。 ; 第2引数の文字集合を区切り文字として、第1引数の文字列を区切り…