https://twitter.com/kinaba のログ (twilog の方が便利です。)
<del>スライド作りとゴルフと講演聞くのの3並列タスクをこなすために</del> OCaml Meeting に向けて出発する | |
ネットワーク接続げっと | |
山上会館からsubmitしたらタイムリミットが0.3秒延びるなどの特典はないのですか | |
@finalfusion ばっちりです!そしてスライドを作らずにゴルフ | |
98B / 1.14sec になった | |
自分がOCaml製ツール(言語処理系は除く)で使ったことがあるのはleditくらいかなあ。他なんかあるかな | |
109Bの壁突破した! #OCamlMeeting | |
kskさんのゴルフトークはじまった #OCamlMeeting | |
kskさんとゴルフの関わり:Tiger Woodsと誕生日が3日違い #OCamlMeeting | |
なぜOCamlはGolfに弱いか : 文字列処理/IOが弱い。せめて printf くらいは Pervasive に… #OCamlMeeting | |
数値処理もしんどい。30bit int。+. -. *. /. mod ... #OCamlMeeting | |
ウォッチ開始 RT USTはじまた #FLTV (team-lab live > http://ustre.am/1CHG) (via @tks) | |
縮めるテクニック(初級編): ;; は高々main文の直前の1回だけでいい。直後は改行不要。100then みたいに数値の後ろのスペース要らない。要らん括弧は消せ。文字列内の\nは生で。「この辺は基本中の基本なので覚えて下さい」 #OCamlMeeting | |
縮めるテクニック(初級編): if禁止。A&B||Cで。型に注意。()=print_stringなどでごまかす。&はdeprecatedだがそんなの関係ねえ(とkskさんは言ってないが僕が勝手に言ってる、と思ったらkskさんも言ったwwww) #OCamlMeeting | |
縮めるテクニック(初級編): A&B;Cで十分なときも。エラー終了するような時。(うおお今これで僕のコード1B縮んだ!!!!!!!!)。配列を使って分岐する手も。片方だけ再帰の時注意 #OCamlMeeting | |
誰かチームラボが見つからないで付近をうろついてる人をファイヤーハウスに集めてハンバーガー食べながらFHTVを始めるんだ | |
縮めるテクニック(初級編): 再帰vsループ。記憶する変数が多いときは再帰。書く処理が独立しているならwhile式。"while 1=1do"。回数が決まってればfor式。Array.initの方が短いときも #OCamlMeeting | |
縮めるテクニック(中級編): 中置演算子を使う。括弧を節約するために優先順位に注意。「この辺の優先順位をちゃんと壁に貼って覚えておきましょう」。結合方向も注意。同様に!で前置演算子。~も使えるけど2B要るのでお前に用はない #OCamlMeeting | |
縮めるテクニック(中級編): let (!)=(land);;!3x すげえ。letの数を減らす。let a=1 let b=2 より let a,b=1,2。多相関数を使うときは注意。複数のlet recはandで。letの代わりにオプショナル引数 #OCamlMeeting | |
縮めるテクニック(中級編): エラーでループ止める。「禁断の魔法 Obj.magic」。関数の型も変換。(めちゃ長い高階の型名を書かずに型推論で適切な型にキャストというのは凄まじくMLの特徴が活きてて僕kinaba的には超好き)整数配列を文字列で圧縮。 #OCamlMeeting | |
縮めるテクニック(中級編): match withの代わりに引数のパターンで。scanfに(^)渡す入力読み。A>B : "両方実行して"両方偽なら偽:||ではだめ。FizzBuzzに有効です。#OCamlMeeting | |
縮めるテクニック(中級編): 引数の順序を変える。式の位置を変える。openしたあとに#loadでもいいよ。#OCamlMeeting | |
縮めるテクニック(運任せ): Obj.magic(@)mod 3。うわあ #OCamlMeeting | |
kskさんもまだ96B!>ゴルフコンペ #OCamlMeeting | |
ぱちぱちぱち #OCamlMeeting | |
五十嵐さんの「型推論の光と影」はじまった #OCamlMeeting | |
むかし自分が高橋メソッドでOCamlの型推論説明したときと同じ方向性で解説されててなんか安心した。あれでよかったんだ #OCamlMeeting | |
「トップレベルの関数くらいは型を書いておいた方がいいかもしれません(一週間後のあなたのために)」 超同意 #OCamlMeeting | |
型エラーをわかりやすく。「多数決で少ない方が間違ってるとする」ってよさそうだな #OCamlMeeting | |
「Q:多相バリアントとかオブジェクトとか激しいのはこの説明の延長線上にあるんでしょうか?全然違う物になるんでしょうか?」「A:拡張にはなっている。ややこしいけど」 #OCamlMeeting | |
次、.@keigoi さんの発表が LT だったはずが昇格w #OCamlMeeting | |
「Ocsigenによる<<型安全>>Webアプリケーション」 #OCamlMeeting | |
@chunjp URLぷりーず | |
そういえば多相バリアントの型エラーは普通の型エラーの比ではなくC++のテンプレートすら遙かに越えて読みにくい気がするんだけど、あれはどうすればいいんだろう。単に型が合わない具体的なインスタンスとか表示してくれると嬉しいのかな #OCamlMeeting | |
隣の @mayahjp にひそかに追いつかれている #OCamlMeeting | |
@chunjp yaccって出ないんでしたっけ。自分の常用している notavacc はコンフリクト例出してくれて非常に助かるので、確かにあれがないと辛い | |
#FLTV ustreamまた来た? | |
「OCamlのコンパイラのソースはOCamlなので読めばOCamlに関する知的ブートストラップが」 #OCamlMeeting | |
(+.) が (float|int)->(float|int)->float という型であれば、分かれてる方が自分は好きだけどなあ。+.じゃなくてfloat_of_intがウザい #OCamlMeeting | |
"make core" と聞くと、core を PHONY にしてなくて普通に開発中にcoreを吐くとそれ以降リビルドされなくなって首をかしげる、というコンボを決めた経験が脳裏に蘇る #OCamlMeeting | |
「Q(by @mametter): OCamlコンパイラのテストベンチとかないんですかね?」「A: testというディレクトリはあるけどメンテされてない」 これは @mametter・ザ・カバレッジライザー の出番 #OCamlMeeting | |
オプショナル引数の使い方がわからないでござる #OCamlMeeting | |
「つい納期が迫ってしまいCで」 #OCamlMeeting | |
中置演算子と組み合わせない方がいいのか #OCamlMeeting | |
オプショナル引数つええ! #OCamlMeeting | |
97Bゾーンに追いついた! #OCamlMeeting | |
よし RT kinaba (rakuda) submits 95B of OCaml for Sum of Divisors for OCaml Golf Competition, ranking #3 (10000pts). (via @mircbot) | |
@natsutan 今急所を刺されると発表資料完成しないので勘弁して下さい>< | |
ネタバレタイム来た。 http://golf.shinh.org/p.rb?Sum+of+Divisors+for+OCaml+Golf+Competition#OCaml 95Bは本質的には同じコードだなー #OCamlMeeting | |
あ、話聞いてなかったF#萌え!!!!!あくてぃぶぱたーーーーーーーーーーーん!!!! #OCamlMeeting | |
#OCamlMeeting おわった。ぱちぱち。 | |
というわけで #FLTV に向かう | |
しまったletterさんと万歩トークするのを忘れていた | |
きたくきたく。未来言語と言われて全力で与太を飛ばせばいいのだなと解釈したので飛ばしてきた。 |