binutilsが入ってるとopamでswitch createした時のビルドに失敗するっぽい?

➜ ~ opam switch create 4.09.0 <><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><> 🐫 [ocaml-base-compiler.4.09.0] downloaded from cache at https://opam.ocaml.org/cache <><> Processing actions <><><><><><><><><><><><>…

goroutineで自作ランタイム上にsetTimeoutを再現する(実装の手順とcallback-hellもついてくるよ!!)

こんばんは、id:Kroutonです。RustのFutureについて調べていたはずが*1いつの間にかcallbackでsetTimeoutを再現するコードをGoで書いていたのでその実装手順について簡単に書きたいと思います。実用性はほぼないです。 注意書き 筆者がプログラミングを始め…

thread_localメモ

自分用覚書、thread_local!で定義したstatic変数はスレッド毎に LocalKeyという構造体でwrapされる。各スレッド変数はそれぞれ外側に不変である、可変参照をしたいならRefCellを被せたりする。 use std::cell::RefCell; thread_local! { static X: RefCell<Vec<usize>> </vec<usize>…

SEKIROトロコンした

全体の7.1%の文章です

自作言語の構文を考えるのがめんどくさいそこのアナタ、Rustのマクロで楽してもいいわよ?

最近 とっくんのYouTubeチャンネル - YouTube さんの再度ハマり言語野が支配されてます、id:Krouton です。 事の発端 頭の中の大蛇丸が「今日はexpression-orientedな言語を作っていくことにするわね」「構文を考えるのがめんどくさいそこのアナタ、AST設計…

Goの[]byte -> stringへのcastってshrinkするんですか?

珍しく技術系の投稿をします(ただし疑問、忘備録 tooEnoughBuf := make([]byte, tooEnoughSize) Write1(tooEnoughBuf, src) string(tooEnoughBuf) == string(src) // false をしたい時のbufの長さをshrinkする方法を考えています。なぜこの等価判定がfalseに…

株式会社はてなに入社しました

id:Krouton です。株式会社はてなに新卒入社しました。 本日からWebアプリケーションエンジニアです。 株式会社はてなに入社しました - hitode909の日記所属してる会社は隠そうと思いましたが、GitHubのOrganizationを見れば分かってしまうし隠すのもなんか…

五カ年計画(後付)した電気通信大学を卒業しました

こんばんは。3/31で無事卒業できたので電通大卒業エントリを書こうと思います。今は無き情報理工学部の先端工学基礎課程(以下、K課程)に所属していました。 動機 親「国公立に入れ」 僕「家から近いから横国がいいな〜、勉強無理だ。電通大ってとこあるじゃ…

Haskellやる

いちいちTokenizerやParserをライブラリを使わずに書くのはダルい。だからパーサジェネレータ(lex/yacc)を使ったりするものだが、Rustで書こうとするとパーサコンビネータである github.com が強いっぽい。nomを見てみたら何もわからん状態になったので影響…

Neovimに気持ち入門した

プログラミングを始めてからほとんどGUIエディタにしか触ったことがなかったしタイルマネージャを触り始めてからキーボードで全部アレコレしたいなという気持ちが強まったので試しにNeovimを突っ込んだ。 VSCodeにもVimのExtensionあったし気が向いたらそっ…

プログラミング in OCaml 5th chapter 練習問題を解いた

練習問題 5.1 let downto1 n = if n < 1 then [] else let rec downto1' n = match n with | 1 -> [1] | n -> n :: downto1' (n - 1) in downto1' n;;

プログラミング in OCaml 4th chapter 練習問題を解いた

練習問題 4.1 let uncurry f (x, y) = f x y;; 練習問題 4.2 let rec repeat f n x = if n > 0 then repeat f (n - 1) (f x) else x;; let fib n = let (fibn, _) = repeat (fun (f, s) -> (s, f + s)) n (0, 1) in fibn;;

プログラミング in OCaml 3rd chapter 練習問題を解いた

練習問題 3.1 1-3は解いたけどソース消えたので気が向いたらやる, 4は `String.capitalize_ascii` を使う邪道プレイした 練習問題 3.2 式 b1 && b2 を if式と true, false, b1, b2のみを用いて同じ意味になるように書き直しなさい。式 b1 || b2も同様に書き…

プログラミング in OCamlを読み始めた

gihyo.jp のKindle版を読み始めた。理由はこれと言ってないが、そこまで学習コストが低くなさそうって思ったところが大きい。とりあえず練習問題を解いたらソースを載せるようにします。

2020年の抱負

毎年雑に生きて雑に過ごしてる気がするのでそろそろ一年を計画的に生きてみたいなと思った 1回はする 買う 新しい計算機 特にMacじゃなきゃいけない理由はないけど自分でカスタマイズするのめっちゃ嫌いなので スマホ 初任給で買うべき端末情報お待ちしてお…

院進しないことにした

この記事は UEC Advent Calendar 2019 - Adventar の24日目の記事です。前日の記事はAltair (id:wktk037)さんの大学には音楽好きが集まる?〜音楽に関する所感 - 輝き ~ 脱・三日坊主計画でした。この記事を読むと優秀ではないことがわかりますね・・・。先…

金閣寺内限定販売の日本酒を買った

こんにちは、この記事は UEC Advent Calendar 2019 - Adventar の 10日目の記事です。遅れてごめんなさい。 最初はHindley-Milner型推論*1を車輪の再発明する記事か学部1-2年生向けにRubyでLispインタプリタ*2を書く話をしようと思ったんですけど、ただでさ…