class が export キーワードで export できなくてちょっと悲しかった

node のバージョンはこんな感じ: % node --version v6.3.1 wasp を書いてたら、 // ↓ class は書けるのに、export ができない!!!>< /* export */ class Emitter { constructor() { this.events = []; } on(name, cb) { this.events = ( this.events || …

ビルドツール Wasp とかどうかな

Fly を見ていたらこういう風に書けたって良いんじゃないかなと思った: const gcc = require( 'wasp-gcc' ); const paths = { scripts: [ 'src/**/*.c' ], dist: 'obj' }; export default function () { this.ready( 'build' ); } export function compile() …

Nemerle やってみた

インストール yaourt でインストールできる: % yaourt -S nemerle へろーわーるど using System; Console.WriteLine( "Hello, World!" ); このファイルを hello.n とすると、ncc を使ってこんな風にコンパイルできる: % ncc ./hello.n -o hello.exe 関数 関…

ちょっと休憩

というか、めちゃくちゃ進んでしまったので、書くのめんどくさい。 % nuget install FParsec -SolutionDirectory . とやることで、./packages/ に FParsec がインストールされることがわかった。

FParsec のチュートリアル的な何か

さて、今日は FParsec 日本語チュートリアルを読んでやってみるよ。 nuget はインストールしてるかな? 私は nuget3 をインストールしてみたよ: % yaourt -S nuget3 勉強用のディレクトリを作成しよう: % mkdir ./hello-fparsec % cd ./hello-fparsec FParse…

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

OCaml のソースコードに沿って TAPDocument.ml を test-document.fs にして、TAPBuilder.ml を test-builder.fs に書いてみた。 なんかクラスっぽいやつでやってみたんだけど、これでいいのかな…………(汗 module Test.Builder type Plan(?count : int) = let c…

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

続き。 ʕ•͡ω•ʔ TAPDocument.ml 完全目コピでけたー! init_document はなんか初期化しそう。 let init_document doc = let count = count_tests doc in let failures = count_test_failures doc in match doc with | Document(PlanNode(plan)::nodes) -> Doc…

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 にしたものを…