bash

8つの言語でテキストフィルタを書き比べた

※2015/11/15追記:現段階では8言語から12言語に増えている。その昔 id:eel3:20120129:1327845759 なんてことをやったのだが、性懲りもなくまた同じようなことをやってみた。作ったものはこちらに置いてある。 GitHub - eel3/hcasl: Command line tool for "h…

ゼロパディングされた連番を出力+ディレクトリを作成

1〜12月の各月のデータを格納する目的で、ゼロパディングされた数値でディレクトリを作成したい。楽をしたいので、まずはゼロパディングされた連番を出力する方法を探ってみた。 シェルスクリプト(/bin/sh)の場合 seq(1)には、ゼロパディングして数値の幅…

シェルスクリプトで末尾呼び出しの最適化

末尾呼び出しの最適化という最適化手法があって、これが有効な場合にスタックフレームの消費が抑えられる。具体的には、関数Aの末尾で関数Bを呼び出していて、関数Bの呼び出しについて末尾呼び出しの最適化が有効となった場合、関数B実行時に新たにスタック…

Real World FizzBuzz

FizzBuzzプログラムは、プログラマを採用する時に全くコードを書けない人を足切りするために考案されたものだ。非常にシンプルで、汎用の高水準なプログラミング言語でコードを書ける人が慣れた言語を使えば、typoなどの細かいミスを除けば2〜3分程度で書け…

8つの言語で1つのツール(2つのコンソールアプリの出力を加工する類のツール)を書き比べた

id:eel3:20120116:1326675419 で書いたように、funclenというC言語用の行数計測ツールを使っている。単純にソースファイル中に定義されている関数名を列挙するだけにも使えるが、ある条件の時に誤った関数名を出力してしまう。なのでExuberant ctagsとgawkを…

時代遅れひとりFizzBuzz祭り bash編おまけ(TCPクライアント/サーバ版)

id:eel3:20111031:1319989854 のおまけ。bash 2.04以降では/dev/tcpや/dev/udpを使用してネットワーククライアントの処理を記述することができる。これらは実際に/dev以下にデバイスノードが存在する訳ではなく、bash上でのみ有効なシンタックス・シュガーの…

時代遅れひとりFizzBuzz祭り bash編(/bin/sh よりも高速に+α)

時代遅れひとりFizzBuzz祭り、今回はbashのよるシェルスクリプトだ。id:eel3:20100531:1275307408 にて/bin/shによる素のシェルスクリプトでFizzBuzzを書いたのだが、余りに遅かった。今度はbashの拡張機能を使って高速化してみようと思う。移植性というもの…