OpenGLUT
適当な場所に展開したあとconfigureを行いますが、v10.4-では次のように変数を設定してやって下さい。
CPPFLAGS="-I/usr/X11R6/include" LD_FLAGS="-R/usr/X11R6/lib"
ちなみにOpenGLUTのコンパイルにはX11 on MacとX11SDKをそれぞれインストールする必要があります。
Think about science.
CPPFLAGS="-I/usr/X11R6/include" LD_FLAGS="-R/usr/X11R6/lib"
?- [X] = "(".
X = 40 ;
No
translate([], []).
translate([X|R], [X1|R1]) :-
plus(X, 3, X1),
translate(R, R1).
caesar(Flat, Unflat) :-
((nonvar(Flat),
atom_codes(Flat, C1));
(nonvar(Unflat),
atom_codes(Unflat, C2))),
translate(C1, C2),
atom_codes(Flat, C1),
atom_codes(Unflat, C2).
calc(Exp, Ans) :- calc0([], Exp, [Ans]).
% calc0/3
calc0(Todo, [], Ans) :- calc1(Todo, Tmp), calc2(Tmp, Ans).
calc0(Todo, [X | Cont], Ans) :-
not(X = "("), not(X = ")"),
append(Todo, [X], T1),
calc0(T1, Cont, Ans).
calc0(Todo, ["(" | Cont], Ans) :-
calc0([], Cont, A1),
calc0(Todo, A1, Ans).
calc0(Todo, [")" | Cont], Ans) :-
calc0([], Todo, A1),
append(A, Cont, Ans).
?- calc([2,*,"(",1,+,"(",2,-,5,")",")",+,5], Ans).
Ans = 1 ;
No
(keyboard-translate ?\C-m ?\C-j)
(keyboard-translate ?\C-j ?\C-m)
(keyboard-translate ?\C-h ?\C-?)
(keyboard-translate ?\C-? ?\C-h)
;; Fundamentals
(global-font-lock-mode t)
(show-paren-mode t)
(setq transient-mark-mode t)
;; SKK
(autoload 'skk-mode "skk" nil t)
(global-set-key "\C-x\C-j" 'skk-mode)
(global-set-key "\C-xj" 'skk-auto-fill-mode)
(global-set-key "\C-xt" 'skk-tutorial)
(add-hook 'isearch-mode-hook
(function (lambda ()
(and (boundp 'skk-mode) skk-mode
(skk-isearch-mode-setup)))))
(add-hook 'isearch-mode-end-hook
(function (lambda ()
(and (boundp 'skk-mode) skk-mode
(skk-isearch-mode-cleanup)
(skk-set-cursor-color-properly)))))
(setq skk-large-jisyo "C:/Meadow/packages/etc/skk/SKK-JISYO.L")
(setq skk-tut-file "C:/Meadow/packages/etc/skk/SKK.tut")
;; SWI-Prolog - http://www.swi-prolog.org/ -
(setq auto-mode-alist
(append '(("\\.pl" . prolog-mode))
auto-mode-alist))
(setq prolog-program-name "C:/Program Files/pl/bin/plcon")
(setq prolog-consult-string "[user].\n")
;; CLISP - http://clisp.cons.org/ -
(setq inferior-lisp-program "C:/clisp/clisp")
;; SLIME - http://common-lisp.net/project/slime/ -
(add-to-list 'load-path "C:/Meadow/slime-2.0/")
(require 'slime)
(slime-setup)
(setq slime-net-coding-system 'euc-jp-unix)
(setq common-lisp-hyperspec-root "c:/clisp/doc/HyperSpec/")
(add-hook 'inferior-lisp-mode
(lambda () (inferior-slime-mode t)))
(add-hook 'lisp-mode-hook
(lambda ()
(slime-mode t)
(show-paren-mode)))
(slime-autodoc-mode)
% calc_op/4
calc_op(X, +, Y, Z) :- Z is X + Y.
calc_op(X, -, Y, Z) :- Z is X - Y.
calc_op(X, *, Y, Z) :- Z is X * Y.
calc_op(X, /, Y, Z) :- Z is X / Y.
calc_op([X, +, Y | R], Ans) :-
calc_op(R1, Ans),
append([Z], R, R1),
Z is X + Y.
% calc/2
calc([], []).
calc([X], [X]).
calc([X, Y, Z | R], Ans) :-
calc_op(X, Y, Z, A1),
append([A1], R, E),
calc(E, Ans).
1+2*3-4/2 => 1+6-4/2 => 1+6-2 => 7-2 => 5
% calc/2
calc(Exp, Ans) :- calc1(Exp, Tmp), calc2(Tmp, Ans).
% calc1/2
calc1([], []).
calc1([X], [X]).
calc1([X, Y, Z | R], Buf) :-
calc1op(X, Y, Z, A1, B1),
append(A1, R, E),
calc1(E, A2),
append(B1, A2, Buf).
% calc2/2
calc2([], []).
calc2([X], [X]).
calc2([X, Y, Z | R], A2) :-
calc2op(X, Y, Z, A1),
append(A1, R, E),
calc2(E, A2).
% calc1op/5
calc1op(X, *, Y, [Z], []) :- Z is X * Y.
calc1op(X, /, Y, [Z], []) :- Z is X / Y.
calc1op(X, +, Y, [Y], [X, +]).
calc1op(X, -, Y, [Y], [X, -]).
% calc2op/4
calc2op(X, +, Y, [Z]) :- Z is X + Y.
calc2op(X, -, Y, [Z]) :- Z is X - Y.
?- calc([2,*,4,-,3,*,1], Ans).
Ans = 5 ;
No