Skip to content

Instantly share code, notes, and snippets.

@takoeight0821
takoeight0821 / map.cc
Last active November 12, 2016 13:01
Map function on C++
#include <algorithm>
#include <iostream>
#include <vector>
#include <string>
#include <iterator>
template <class T, class F>
decltype(auto) map(const std::vector<T> a, const F fn) {
std::vector<decltype( fn(a[0]) )> result = {};
std::transform(a.cbegin(), a.cend(), std::back_inserter(result), fn);
@takoeight0821
takoeight0821 / dual_number.ex
Created October 25, 2016 06:58
Dual Number on Elixir
import Kernel, except: [+: 1, +: 2, -: 1, -: 2, *: 2, /: 2]
defprotocol Arithmetic do
def left + right
def left - right
def left * right
def left / right
def +value
def -value
end
@takoeight0821
takoeight0821 / interp.lisp
Created August 6, 2016 12:00
Mini Lisp Interpreter 0.0.1
(ql:quickload :alexandria)
(defparameter *globol-env* (make-hash-table))
(defun bindp (expr env)
(second (multiple-value-list (gethash expr env))))
(defun get-env (expr env)
(gethash expr env))
(defun set-env (var val env)
(setf (gethash var env) val))
@takoeight0821
takoeight0821 / rpn.lisp
Created March 13, 2016 02:53
RPN電卓
(defparameter *stack* nil)
(defun push-stack (val)
(push val *stack*))
(defun pop-stack ()
(pop *stack*))
(defparameter *defined* nil)
(defun definedp (name)
@takoeight0821
takoeight0821 / lhtrpg.lisp
Last active June 25, 2016 09:18
lhtrpgをCommon Lispでいじる
(mapc #'ql:quickload
(list :drakma :jonathan))
(setq drakma:*drakma-default-external-format* :utf-8)
(pushnew '("application" . "json") drakma:*text-content-types* :test #'equal)
(defun dl-lhz (label)
(jonathan:parse (drakma:http-request (format nil "http://lhrpg.com/lhz/api/~a.json" label)) :as :hash-table))
(defparameter *skills* (dl-lhz "skills"))
(defparameter *items* (dl-lhz "items"))
@takoeight0821
takoeight0821 / Main.cpp
Last active December 24, 2015 14:43
Siv3Dでダイバージェンスメーターのスケッチ
#include <Siv3D.hpp>
double world_line = 0.0;
double readingSteiner() {
// 1%の確立で世界線が大きく変動する。
if (RandomBool(0.01))
{
if (RandomBool(0.5)) // 減るか増えるかは半分半分
{
++world_line;
@takoeight0821
takoeight0821 / lisp.ros
Created December 5, 2015 13:31
ちょっとCommon Lispをいじりたい時に
#!/bin/sh
#|-*- mode:lisp -*-|#
#|
exec ros -Q -- $0 "$@"
|#
#|
$ ros build lisp.ros
$ ./lisp hoge
|#
@takoeight0821
takoeight0821 / lifegame.ros
Last active November 15, 2015 01:01
./lifegame.ros *width* *height* *wait-time*
#!/bin/sh
#|-*- mode:lisp -*-|#
#|
exec ros -Q -- $0 "$@"
|#
(defparameter *width* 0)
(defparameter *height* 0)
(defun neighbors (pos)
(let ((x (car pos))
@takoeight0821
takoeight0821 / make.log
Created August 8, 2015 08:44
ros install sbcl/1.2.14のmake.log一部抜粋
; SYS:CONTRIB;SB-POSIX;POSIX-TESTS-TMP.FASL.NEWEST written
; compilation finished in 0:00:00.019
Doing 70 pending tests of 70 tests total.
SB-POSIX-TESTS::CHDIR.1 SB-POSIX-TESTS::CHDIR.2 SB-POSIX-TESTS::CHDIR.3
SB-POSIX-TESTS::CHDIR.4 SB-POSIX-TESTS::CHDIR.5 SB-POSIX-TESTS::CHDIR.6
SB-POSIX-TESTS::CHDIR.7 SB-POSIX-TESTS::CHDIR.8 SB-POSIX-TESTS::CHDIR.ERROR.1
SB-POSIX-TESTS::CHDIR.ERROR.2 SB-POSIX-TESTS::MKDIR.1 SB-POSIX-TESTS::MKDIR.2
SB-POSIX-TESTS::MKDIR.ERROR.1 SB-POSIX-TESTS::MKDIR.ERROR.2
SB-POSIX-TESTS::MKDIR.ERROR.3 SB-POSIX-TESTS::RMDIR.1 SB-POSIX-TESTS::RMDIR.2
SB-POSIX-TESTS::RMDIR.ERROR.1 SB-POSIX-TESTS::RMDIR.ERROR.2
@takoeight0821
takoeight0821 / posix-tests.lisp.patch
Last active August 29, 2015 14:23
fix sb-posix/posix-tests.lisp failed on Japanese Mac OS X
diff --git a/contrib/sb-posix/posix-tests.lisp b/contrib/sb-posix/posix-tests.lisp
index ec5a49c..444b3b0 100644
--- a/contrib/sb-posix/posix-tests.lisp
+++ b/contrib/sb-posix/posix-tests.lisp
@@ -3,6 +3,9 @@
(in-package "SB-POSIX-TESTS")
+#+darwin(setf sb-alien::*default-c-string-external-format* :utf-8)
+#+darwin(setf sb-impl::*default-external-format* :utf-8)