Skip to content

Instantly share code, notes, and snippets.

View tamurashingo's full-sized avatar
🆑
I'm writing CommonLisp

tamura shingo tamurashingo

🆑
I'm writing CommonLisp
  • Saitama, Japan
View GitHub Profile
@tamurashingo
tamurashingo / sample.md
Last active May 14, 2022 02:43
markdown test
classDiagram
    Animal <|-- Duck
    Animal <|-- Fish
    Animal <|-- Zebra
    Animal : +int age
    Animal : +String gender
    Animal: +isMammal()
    Animal: +mate()
@tamurashingo
tamurashingo / main.kt
Created November 1, 2020 07:23
Javaで画像として文字を出力する(Kotlinだけど)
import java.awt.Color
import java.awt.Font
import java.awt.image.BufferedImage
import java.io.File
import javax.imageio.ImageIO
fun main(args: Array<String>) {
val img = BufferedImage(28 * 7, 40, BufferedImage.TYPE_3BYTE_BGR)
val g = img.graphics
g.color = Color.WHITE

結論

CommonLisp使うと便利でした。

その中でも今回はClozureCLを使っています。

背景

その1

  • A) GYOMUハックっていろんなシステムと連携するよね
  • B) REST APIだよね
  • A) あれって何を送ったら何が返ってくるかイメージしにくいよね
@tamurashingo
tamurashingo / ruby-ast.lisp
Created November 23, 2018 01:10
Ruby AST parse(一部)
(defun parse-program (s)
"expect:
(:program
((:class
.....
....)))"
(loop for program in (cadr s)
do (cond ((and (listp program)
(eq (car program) :class))
(parse-class program))
@tamurashingo
tamurashingo / cl-batis-sample.lisp
Created August 21, 2017 21:27
cl-batisサンプル
;; connection pool
(defvar *connection-pool* nil)
;; アプリケーションサーバが立ち上がるときに実行
(defun init-database (driver-name &rest params &key database-name &allow-other-keys)
"initialize database"
(setf *connection-pool* (apply #'dbi-cp:make-dbi-connection-pool driver-name params)))
;; アプリケーションサーバ終了時に実行
(defun shutdown-database ()
@tamurashingo
tamurashingo / likemybatis.lisp
Last active June 28, 2017 15:22
CommonLispでMyBatisっぽい感じでいきたい
@select (
" select
product_id,
product_name,
product_price,
product_image,
product_url
from
product
where
@tamurashingo
tamurashingo / parse.lisp
Created June 24, 2017 06:29
parse SQL and generate prepared sql and parameter names
(defun parameterized-sql-parse (sql)
(let* ((params nil)
(sql (with-output-to-string (s)
(loop with colon = NIL
with quoted = NIL
with prev = #\Space
with param = '()
for c across sql
if (and (not colon) (not quoted))
if (char= c #\:)
@tamurashingo
tamurashingo / jquery_and_mdl.html
Created August 16, 2015 13:51
jquery scroll test
<html>
<head>
</head>
<link rel="stylesheet" href="https://storage.googleapis.com/code.getmdl.io/1.0.2/material.indigo-pink.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<body>
<nav class="mdl-navigation">
<a class="mdl-navigation__link" href="">Home</a>
<a class="mdl-navigation__link smooth" href="#product">Product</a>
</nav>
@tamurashingo
tamurashingo / sudoku_gen.lisp
Last active January 2, 2016 07:49
数独の問題を生成したい
(defun generate-numseq (size)
"指定したサイズの数列を作る"
(let ((gen-list '()))
(labels ((gen (current num-list)
(if (< current size)
(loop for x from 1 to size
if (not (member x num-list))
do (gen (1+ current) (cons x num-list)))
(push num-list gen-list))))
(loop for x from 1 to size
@tamurashingo
tamurashingo / gist:5018596
Created February 23, 2013 05:31
Project Euler 6
{-
1~100までの二乗の和と、1~100までの和の二乗との差分を求める。
1~100までの二乗の和
foldl (+) 0 $ map (^ 2) [1..100]
1~100までの和の二乗
(^ 2) $ foldl (+) 0 [1..100]
-}