Skip to content

Instantly share code, notes, and snippets.

@otaon
otaon / variadic_macro.c
Created March 23, 2019 13:06
C言語 - gccで可変長引数マクロを使用する方法
// gccでは...で表した可変長引数を__VA_ARGS__で指定できる
// 可変長引数を全て__VA_ARGS__とマップする
#define DEBUG_PRINT(...) printf(__VA_ARGS__); fflush(stdout)
// fmt以降の可変長引数を__VA_ARGS__とマップする
#define DEBUG_PRINT2(fmt, ...) printf(fmt, __VA_ARGS__); fflush(stdout)
// _1,_2,_3,の部分・・・引数の個数だけ用意する
// NAME・・・この部分に、目的の引数個数用の関数名が入る
#define GET_MACRO(_1,_2,_3,NAME,...) NAME
@otaon
otaon / continuation-passing-style-test.lisp
Last active May 27, 2024 02:51
継続とクロージャと末尾再帰
(declaim (optimize (debug 3)))
(defun last-element-p (lst)
(if (cdr lst)
t
nil))
(defun add-elements (lst)
"非末尾呼び出し形式&非継続渡し形式"
(break)
@otaon
otaon / slimvのショートカット一覧.md
Last active March 4, 2023 12:19
slimv (slime for vim)のショートカット一覧

slimvのショートカット一覧

  • 一部誤謬がある可能性がある
  • abc^de はカーソルがcの上にあることを意味する

編集 edit

一般操作

| コマンド | 操作 | 操作例 | 操作結果 |

@otaon
otaon / vim-build-config.md
Created October 7, 2018 11:06
Vim のビルド方法

gitからclone

$ git clone https://github.com/vim/vim.git ~/git/vim

コンフィグ

prefixにvimのインストール先を設定する。

$ cd ~/git/vim 
@otaon
otaon / 000_OOP原則集.md
Last active November 30, 2018 15:30
オブジェクト指向プログラミングで守るべき原則集

ドキュメント一覧

  • Book "実践 Common Lisp"
    • 第1章 序論:なぜLispなのか?
    • 第2章 お気の済むまで:REPLツアー
    • 第3章 実践:簡単なデータベース
    • 第4章 シンタックスとセマンティクス
    • 第5章 関数
    • 第6章 変数
    • 第7章 マクロ:標準的な制御構文の構築
  • 第8章 マクロ:自分で定義しよう
@otaon
otaon / git-prefix.md
Last active March 30, 2022 03:52
gitのcommitで使用するプレフィックス
@otaon
otaon / 000_Common-Lisp-基本構文.md
Last active April 30, 2023 07:23
common lisp の環境構築から基本構文を説明

本記事の構成

  • 001_Common-Lisp-基本構文説明.md
  • 002_Common-Lisp-リスト操作説明.md
  • 003_Lisp処理系起動時のディレクトリパス-カレントディレクトリパスを取得-設定する.md
@otaon
otaon / 000_how-to-construct-environment-for-common-lisp.md
Last active July 23, 2022 08:52
vim と slimv と roswell と swank で common lisp を書く環境を作る

本記事の位置づけ

下記を実現するための手順書。

  • roswell(lisp実行環境構築ツール)を導入する
  • slimv(VimにおけるSLIME)を導入する
  • roswellとslimvでcommon lispをコーディング、実行するための設定をする

手順一覧

下記の順番に環境構築する。