C言語

C言語でクロージャ

クロージャって何だろう? クロージャは関数と環境を一緒にしたものである。クロージャは、関数がレキシカル環境から何かを参照するときには暗黙に必ず作られている。 『ANSI Common Lisp』- 6.5 クロージャ より どんな風に使うのだろう? アキュムレータを…

map and grep, foreach on C

Perlでリスト処理といえばmapとgrepにforeachだと思う。 たとえば、こんな感じで使える。実行すると"6 12 18 24 30"が標準出力に出力される。 #! /usr/bin/perl use strict; use warnings; # 要素に1から10を持つリストを生成する。 my @list1 = (1..10); # …

C言語で似非Java風味の例外フロー

Javaにはtry〜catch〜finallyの例外フローが存在するけどC言語には無い。でも実現することはできる。こんな感じで使える。 #include <stdio.h> #include <stdlib.h> #include "exception.h" /* 例外フローの定義 */ /* 例外を投げる関数 */ void sub1(EXCEPTION *e) { printf("</stdlib.h></stdio.h>…

最初のプログラムはハローワールド?

プログラム言語で最初のプログラムと言えばハローワールド。 もはや定番ですが分かりやすいとは言えない。例えば『プログラミング言語C』では最初に書くべきプログラムとして次の「ハローワールドを印字する」コードを掲載している。 #include <stdio.h> main() { pri</stdio.h>…