type t (* void *)

関数型言語や英語学習の事とか。

OCaml: RWOを読み進めるためのOCaml設定

20150426加筆 RWOの説明を書いた
20150422加筆 より細かく書いた

20150909加筆 以下の内容はDebian 7向けに書かれており古いです! Debian 8ではより簡単にopamをインストール出来るようになっています! 下の記事では重複する部分は書きませんでしたが、インストール方法については下の記事が最新です。

no-maddojp.hatenablog.com

なんかちょっとだけOCaml環境構築が面倒みたいな話があったので、構築手順を書く。
大体確かめられた手順なのでよいはず。

Emacsのインストールまで解説しますが、RWOを読み始めるにあたりエディタの設定は必ずしも必要ではありません。
楽しんで下さい。

続きを読む

Emacsでpythonを書く環境

老人なのでemacsでプログラムを書いていますが、最近はpythonを少しだけ書く必要があったので環境の話をまとめます。
melpaにアクセスできることを想定してます。

念の為、バージョンに依存するところはないと思いますがpackage.elを使うので24以上、 私の環境は26.1です。

続きを読む

Emacsでポモドロをやっていきたいが

今まで自分が何にどれくらい時間を使ったのか分からなくて、ポモドロの記録をつけ始めた。
コレ自体は良いというか、自分の時間の使い方を見直すことができて有意義だと思っている。
しかし、今使っている道具が微妙に使いづらくて困っている

francescocirillo.com

続きを読む

Ubuntu 18.04にアップグレードしたときに起きたこと

設定が色々戻った系のアレ

  • インプリメントメソッドがibusになった settingから下に戻す
  • Alt + Tabのショートカットキーが新しいfunctionに奪われた

  • switcherが標準のものに戻された compizからstatic swicherに戻す

動いていたものが動かなくなった

うれしいこと

  • Ubuntu 18.04にしたことでpythonのバージョンが上がって、local type hintを書いてもエラーにならなくなった。これは嬉しい

ML_Day#2を開催しました

ML Day#2を開催しました。 ML勉強会という名前にしていたときから数えて通算4回目です。

今回もドワンゴさんのセミナー室をお借りしました。 この規模のセミナー室が便利に利用できるのは本当に助かります。

続きを読む

ocamlのctypesで.oをリンクする

昔はもっと面倒だったと思うのですが、いつの間にか動くようになっていました。OCaml 4.07, ctypes 0.11.5で確認。
ocamloptでは普通に.oをリンクするだけでctypesで作った関数が呼び出せる。
ocamlcではできない。

open Ctypes
open Foreign

let f = foreign "f" (void @-> returning int)

let _ =
  Format.printf "%d@." @@ f ()
int f ()
{
  return 100;
}
OCAMLC=ocamlfind ocamlc -package ctypes,ctypes.foreign
OCAMLOPT=ocamlfind ocamlopt -package ctypes,ctypes.foreign

test.x: lib.o main.cmx
        ${OCAMLOPT} -o $@ -linkpkg $^

test: lib.o main.cmo
        ${OCAMLC} -o $@ -linkpkg $^

clean:
        rm *.o *.cm? *.so

# 使ってない
lib.so: lib.o
        gcc -shared $^ -o $@

%.o: %.c
        gcc -c $<

%.cmo: %.ml
        ${OCAMLC} -c $<

%.cmx: %.ml
        ${OCAMLOPT} -c $<

OCamlのformat型の変な?型付け

ツイッターやらリアルで話しすぎてどこまで書いたかわからないけどformat型についてまとめておく。 言いたいことはほとんどこれだけ。

続きを読む