OCaml の Test::Simple を目コピしてみた その 2

続き。 OCaml では文字列の結合は ^ だけど*1、F# では + だ。 また、OCaml での string_of_int は F# には存在しないけど、書くとしたらこんな感じになる: let string_of_int (n:int):string = n.ToString() DiagnosticNode を返す関数 2 連発: let create_…

OCaml の Test::Simple を目コピしてみた

これ。 普通に OCaml のコードがコンパイルできるのすごい。 モジュール名は Test.Builder にしておく。 module Test.Builder type status = | NotOk | Ok type directive = | Todo of string type diagnostic = | Diag of string list type node = | TestCa…

F# で Either もできたよー

ʕ•͡ω•ʔ 最近 fsharp-mode より tuareg-mode のがいいんじゃないかって思うようになってきた module Data.Either type either<'a, 'b> = | Left of 'a | Right of 'b let either f g e = match e with | Left a -> f a | Right b -> g b let isLeft x = match…

F# で Maybe できたよーーー

ʕ•͡ω•ʔ Haskell の何かを F# で書くと楽しいんじゃ(天才博士風) というわけで、実装して覚えるシリーズ。 型の定義がこちら: type Maybe<'a> = | Nothing | Just of 'a F# 風にするなら、Maybe を maybe にするべきかも。 ゆかいな Maybe 関連の関数: let ma…

FSharp やってみた2

その 2。 add という関数を定義して、引数を渡して評価してみる: > let add x y = - x + y;; val add : x:int -> y:int -> int > add 2 2;; val it : int = 4 関数のボディ部分を折ってるけど、インデントしないと Warning が出るので注意。 あと、終了する…

FSharp やってみた

良い感じのブラウザだと Try F# で式を評価できるらしいんだけど、できないブラウザだったので、処理系をインストールして式を評価してみるよ。 インストール yaourt で fsharp をインストールできるよ。 % yaourt -S fsharp REPL 起動 REPL を起動する時は …

フォントを Roboto にした

タイトル下 前やったときは記事上とかにしてたんだけど、これだと複数になっちゃうかも?って思ってタイトルの下に書いた。 <link href='https://fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'> <link href='https://fonts.googleapis.com/css?family=Roboto+Mono' rel='stylesheet' type='text/css'> デザイン CSS 常日頃から…</link></link>

後日談

結論から言うと、VSCode では C# なプロジェクトを作れないのだ。ということがわかった。 ASP.NET なのしかサポートしてないので、やりたいなら Visual Studio コミュニティーエディションをインストールしろということらしい*1 実のところ、このような: - t…

VSCode を yaourt でいんすとろーるしてみた。

まだ良くわかっていない*1。 ビルドタスクは以下のような .vscode/tasks.json に書くらしい。 { // See http://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "0.1.0", "command": "dotnet", "i…

clojure で Electoron できる descjop をやってみようと思った その4.8

前の続き。 ボタンを付ける。 hello-om-based2/src_front/hello_om_based2_front/core.cljs をいじる。 (ns hello-om-based2-front.core (:require [om.core :as om :include-macros true] [om.dom :as dom :include-macros true])) (defonce app-state (ato…

なんだか auto-complete でエラってファイルが開けない件

(ac-config-default) が原因っぽいのでとりあえずコメントアウトしてる: ;; auto-complete を自動で始まらないようにします? (setq ac-auto-start nil) (require-if-exists auto-complete) (require-if-exists auto-complete-config) ;;(global-auto-comple…

clojure で Electoron できる descjop をやってみようと思った その4.6

原因はなんか、lein はフォルダ名のハイフンをアンダーバーにして名前空間にしてるんだけど、何かがどうかなってハイフンのままになってたらしい: gist.github.com dev の方のハイフンをアンダーバーに修正して lein cljsbuild once してみた: % lein cljsbu…

clojure で Electoron できる descjop をやってみようと思った その4.5

前回、 Om does not work なので動かないと書いておしまっていたんだけど、作者さんから下記リプが来たのでもうちょっとやってみることに: @noqisofon こんにちは、たぶんこちらdescjop側の問題でした、すみません。その他抱えていた問題をいろいろ直したver…

依存関係を解決できなかった件

今朝 yaourt -Syua やってみたら: % yaourt -Syua [sudo] rihine のパスワード: :: パッケージデータベースの同期中... core 121.1 KiB 107K/s 00:01 [######################] 100% extra 1744.2 KiB 110K/s 00:16 [######################] 100% community…

clojure で Electoron できる descjop をやってみようと思った その4

hello-om-based にボタンを付けるとかそういう感じ。 hello-om-based/src_front/hello_om_based_om/core.cljs をいじるらしい。 以下のようになってる: (ns hello_om_based-om.core (:require [om.core :as om :include-macros true] [om.dom :as dom :inclu…

clojure で Electoron できる descjop をやってみようと思った その3

Om を使うので別のプロジェクトを作る +om を追加することで Om を使えるようにする。 % lein new descjop hello-om-based +om なんかめんどいので初期化のためのすくりぷよ書く また同じようにやるのは味気ないので、すくりぷよを書く。 Makefile に書こう…

clojure で Electoron できる descjop をやってみようと思った その2

html の修正 Hello して World するために ./app/index.html を修正する。 こんな感じ: <html> <head> <title>Hello, World!</title> </head> <body> <h1>Hello, World!</h1> <div>Hello, World!</div> </body> </html> で: % ./electron/electron ./app/ アプリを起動する。 (๑´ڡ`๑) でけた 参考 descjop で遊ぼう day 7 : Hello World…

clojure で Electoron できる descjop をやってみようと思った

やってみたことをクズ記事でもいいので書いておくことにしたような気配。 書かないと忘れちゃうからね。 lein でプロジェクトを作る descjop を使うらしい。 lein new の使い方はこんな感じ: % lein new <テンプレート名> <プロジェクト・ディレクトリパス> …

くろーじゃすくりぷよってみた

% lein new figwheel hello-cljs なんか figwheel っていうテンプレートがあるらしい。 % lein cljsbuild once でじゃばすくりぷよをアレしてくれるらしい。 今日はここまで。 ╰( ´◔ ω ◔ `)╯ まだ何もやってないな

Ruby と Crystal で違うところ

gazel を書いてみた時に、Ruby と違うなーって感じたところを書いてみる。 型付き わぁお! 型が付いてる!! Tuple が追加された Crystal では Tuple が追加されたので、引数のリストは実際 Tuple になったよ。 除け者にされた then 私は Ruby では then を…

String -> は Proc(A, B).new では表記できない?

3 記事連続で Crystal。 #on の block の型が String -> なんだけど、戻り値の型が不明?なので、Proc(A, B).new { |x| ... } という Proc の表記では書けないっぽい………。 こういう風に書きたいけど、エラーになる: proc = Proc(String, ).new { |x| hoge = …

Crystal では何でもかんでも配列にしてあれこれするのは良くないぜ!

Rake のコードを Crystal に移植していたら、配列を関数の引数として展開できないせいでまずいことが起こった。 def standard_gazel_options(options) [ [ "-A", "--all", "Show all tasks, even uncommented ones (in combination with -T or -D)", ->(valu…

Crystal の Proc

こういう関数があって: def greeting(&block) yield "Hello, World!" end こんな風に渡すことができるよ: # # 通常通りにブロックを渡す。 greeting { |v| puts v } # # puts を Proc にして渡す。 greeting &->puts(String) # # puts を Proc にしたものを…

YAML でターゲット書くビルドツール gazel とかどうかな

だいぶ前から YAML でビルドスクリプト(?)書いて、ビルドしてくれるツールのことを考えていた。 なんか今日、これだっていうのが浮かんだので書いてみる。 gazel は bazel と似てるけど、名前を忘れていてそれに想起されて思いついた。 とはいえ、例によっ…

構造化プログラミングと脳みそクラッシャー

COBOL は構造化プログラミングが可能な言語として名前が挙げられることが多い。 でも、COBOL が構造化プログラミングできる言語だというのはまったくもって真実ではない。 COBOL の構造化の考え方はこうだ: COBOL には3つの構造化文がある! 曰く、「順次」…

わんおぶ!

こんな風に書くのめんどいよね。 (or (equal? x #\a) (equal? x #\b) (equal? x #\c)) just を書いて…… (define* (just x #:optional (judge? equal?)) (lambda (other) (judge? x other))) one-of をこういう風に書いたら、 (define (one-of . args) (lambd…

ちょまどデバッグ ちゃぷたー1

なんでこれを書きたくなったかはめんどくさいので省きます。 便利プロパティを知らない人が多いっぽい感じなので、少しでも便利プロパティを知って楽にコードを書きましょう。 1 日の中で何秒経過したか知りたい! .NET では、DateTime オブジェクトから Dat…

Wercker で Scheme なモジュールのテストした

全国七千万の自動テストファンのみなさんこんばんは! 昨日ね、wercker でテストしたのでそんな感じのことを書くよ。 wercker.yml はこんな感じ: # This references a standard debian container from the # Docker Hub https://registry.hub.docker.com/_/d…

モジュールのこと

Scheme の S6RS や S7RS では モジュールの名前を (shell command) みたいにリストで表記する。 私が使っている Guile ではそういう風に表記するので、調べてみたら R6RS や R7RS のあれだった。 R6RS でも R7RS でもモジュールじゃなくてライブラリというら…

libalpm が 10 になったせいで AUR が検索すらできない件

みなさんはこんなエラーが出ていませんか?: % yaourt -S package-query-git package-query: error while loading shared libraries: libalpm.so.9: cannot open shared object file: No such file or directory package-query: error while loading shared …