Skip to content

Instantly share code, notes, and snippets.

@llibra
llibra / realm.swift
Created October 17, 2016 10:26
自分用Realmサンプルコード
class Dog: Object {
dynamic var name = ""
dynamic var age = 0
}
func testExample() {
let dog = Dog()
dog.name = "Rex"
dog.age = 1
func fact1(n: Int) -> Int {
if n == 1 {
return 1
} else {
return n * fact1(n - 1)
}
}
func fact2(n: Int, _ acc: Int) -> Int {
if n == 1 {
@llibra
llibra / adt.swift
Last active August 7, 2016 06:48
Algebraic data type in Swift.
// cf. https://ja.wikipedia.org/wiki/%E4%BB%A3%E6%95%B0%E7%9A%84%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B
enum Node {
case leaf(Int)
indirect case branch(Node, Node)
}
func dump(node: Node) {
func iter(node: Node) {
switch node {
@llibra
llibra / noun-extraction.clj
Created October 4, 2015 14:32
Extract nouns from Japanese text.
(ns kuro.core
(:import (com.atilika.kuromoji.ipadic Token Tokenizer))
(:gen-class))
(defn noun? [token]
(let [pos (first (:part-of-speech token))]
(or (= pos "名詞"))))
(defn ->part-of-speech [token]
(letfn [(na? [x] (= x "*"))]
@llibra
llibra / sbcl-1.1.10.markdown
Last active December 20, 2015 10:19
SBCL 1.1.10変更点作業用

機能強化

  • ASDFが3.0.2にアップデートされました。

最適化

  • x86系でスタックフレームがより効率的に格納されるようになりました optimization: stack frames are packed more efficiently on x86oids, which ought to reduce the frequency of Methuselahn conservative references (it certainly helps with gc.impure.lisp / BUG-936304 on x86).
  • x86とx86-64で、整数の optimization: on x86 and x86-64, integer negation forms like (- x) are now recognized in modular arithmetic contexts, and compile to native negate, rather than going through bignums only to keep the low bits.
@llibra
llibra / sbcl-1.1.10.markdown
Created July 30, 2013 16:31
SBCL 1.1.10変更点作業用

機能強化

  • ASDFが3.0.2にアップデートされました。

最適化

  • x86系でスタックフレームがより効率的に格納されるようになりました optimization: stack frames are packed more efficiently on x86oids, which ought to reduce the frequency of Methuselahn conservative references (it certainly helps with gc.impure.lisp / BUG-936304 on x86).
  • x86とx86-64で、整数の optimization: on x86 and x86-64, integer negation forms like (- x) are now recognized in modular arithmetic contexts, and compile to native negate, rather than going through bignums only to keep the low bits.
@llibra
llibra / sbcl-1.1.9.md
Last active December 19, 2015 10:58
SBCL 1.1.9変更点作業用

新機能

  • contribのsb-gmpモジュールはBIGNUMRATIOの計算を高速化するために実行時にlibgmpとリンクします。(Stephan Frankによって寄贈されました)

機能強化

  • DISASSEMBLEが、LENGTHのような、以前は見付けられなくなってしまっていたいくつかの静的な関数に注釈を付けるようになりました。
  • clean.shdoc/internalsも掃除するようになりました。
  • パッケージプリフィックス付きでシンボルを表示するために、SB-EXT:PRINT-SYMBOL-WITH-PREFIXが~//(訳注:22.3.5.4 Tilde Slash: Call Function)の中で使えるようになりました。
  • デバッガとバックトレースがバギーなPRINT-OBJECTメソッドに対してより堅牢になりました。
@llibra
llibra / gist:5611751
Last active December 17, 2015 12:39
ファイル先頭のコピーライト表記をチェックするために書いた書き捨て系スクリプト
import scala.io.Source
import java.io.File
def isJavaSource (f: File) : Boolean = {
val r = "\\.java$".r
r.findFirstIn(f.getName) match {
case Some(_) => true
case None => false
}
@llibra
llibra / eval-after-load-macro.el
Last active December 14, 2015 10:49
Good bye, PROGN.
(put 'eval-after-load* 'lisp-indent-function 1)
(defmacro eval-after-load* (file &rest body)
`(eval-after-load ,file '(progn ,@body)))
@llibra
llibra / overlay.diff
Created February 25, 2013 11:56
A patch for overlay support of ac-disable-faces.
--- /cygdrive/c/Emacs/site-lisp/auto-complete/auto-complete.el 2013-02-10 21:25:46.000000000 +0900
+++ auto-complete.el 2013-02-25 20:36:40.780375000 +0900
@@ -1619,7 +1619,7 @@
;;;; Auto complete mode
(defun ac-cursor-on-diable-face-p (&optional point)
- (memq (get-text-property (or point (point)) 'face) ac-disable-faces))
+ (memq (get-char-property (or point (point)) 'face) ac-disable-faces))
(defun ac-trigger-command-p (command)