- プログラミングのお題スレ Part5
171 :デフォルトの名無しさん[sage]:2014/10/03(金) 01:45:18.90 ID:dmioHSpm - >>160 Emacs Lisp
(require 'cl-lib) cl-lib (defun hwsh () (cl-loop (let ((s (read-from-minibuffer "hwsh%% "))) (if (string= s "Hello World") (return) (message s) (sleep-for 1))))) hwsh (hwsh) nil
|
- プログラミングのお題スレ Part5
172 :デフォルトの名無しさん[sage]:2014/10/03(金) 01:45:58.31 ID:dmioHSpm - >>160 C
% cat hwsh.c #include <stdio.h> #include <string.h> int main() { char buf[12]; for (;;) { fprintf(stderr, "hwsh%% "); fgets(buf, sizeof(buf), stdin); if (strcmp(buf, "Hello World") == 0) break; else printf(buf); } return 0; } % make hwsh && ./hwsh cc -o hwsh hwsh.c hwsh% 0 0 hwsh% exit exit hwsh% Hello World % printf "0\nexit\nHello World\n" | ./hwsh 2>/dev/null 0 exit %
|
- プログラミングのお題スレ Part5
173 :デフォルトの名無しさん[sage]:2014/10/03(金) 01:48:24.36 ID:dmioHSpm - >>164 Common Lisp
(defun f (n) (let* ((l (reverse (list 0 1 2 3 6 12 23))) (llen (length l)) (a 1) (b 2)) (loop for i from 0 below (- n llen) do (push (- (* (car l) 2) b) l) (let ((c a)) (setq a b) (setq b (+ b c)))) (if (< n llen) (nth (1- n) (reverse l)) (car l)))) (loop for i from 1 to 10 collect (f i)) (0 1 2 3 6 12 23 44 85 165) (length (format nil "~A" (f 100))) 30 (f 100) 178263365792396611930180634305 (length (format nil "~A" (f 1000))) 301 (f 1000) 15068089788556884200837227252406275461019755164609 06635467773983645806165644441422256060220226175048 15438210583985091319581712489295286782219515928380 05401737218723110358276833903488019327945469306820 43784151439006799226471757474685843965850035847511 56061127007446991905868118479501067774407042212650 5 (length (format nil "~A" (f 10000))) 3010
|