Haskell
:k 型の種類 :i 名前についての情報 :l モジュールすべてを再帰的にロード :t 型の推論 あたり GHCiのコマンド群
前回休みました… 第2期 第10回 H本読書会 in 秋葉原 - H本読書会(Haskell勉強会) | Doorkeeper 自動車は型引数を取るべきか? 三次元ベクトル 7.5 インスタンスの自動導出 Showすると文字列表現 人間の平等(人間に分かりやすい表現) 読み込んでクラスにでき…
探したらこんなのあったので、とりあえず共有しておく。俺の中で。 Is it possible to implement flip in Scala like it is implemented in Haskell? Is it possible to implement flip in Scala like it is implemented in Haskell? - Stack Overflow 引数…
08-170006.hs ラムダと関数を組み合わせることは出来たりするけど、これをScalaに適用しようとすると、どうかなって感じはある。
haskell-modeのインデントは変数1つの値を書き換えるだけじゃなくて、複数のdefcustomをどうにかしないといけないので、ちょっとつらい。 50haskell-mode.el customize-variableから、適当にインデントを2→4にしたやつをごにょごにょしてみる。
おさらい モジュール Haskellにはモジュールというものがあり、プログラムを分割することが出来、いくつかのプログラムをエクスポートできる モジュールのインポート 標準モジュールをインポートしてみよう ghciでもプログラムのファイルからでも可 import q…
第2期 第7回 H本読書会 in 秋葉原 - H本読書会(Haskell勉強会) | Doorkeeper 前回のラブライブ! embedがうまくいかないので修正しました。 http://shigemk2.hatenablog.com/entry/2015/02/04/ 5.4 ラムダ式 ラムダ式とは、1 回だけ必要な関数を作るときに使…
前回のおさらい 第5章 1-3 複数の引数を受け取れるかのように見えた関数は、 実はすべてカリー化された関数だったのです。 カリー化関数は、 複数の引数を取る代わりに、 常にちょうど1つの引数を取る関数です。 セクション 高階関数 標準ライブラリの再実装…
前回のふりかえり(第4章) 再帰 maximumの再定義 replicateの再定義 takeの再定義 reverseの再定義 repeatの再定義(そのままだと終わらないので、takeと組み合わせる) zip elem クイックソート 再帰的に考える 基底部を見極める 解くべき問題をより小さな部分…
8086の逆アセンブラは、とりあえず完成を見る。 最後の〆はSEGMENT OVERRIDE PREFIXですがそれに対応するように関数を作り直すのに少し手間取りました。 とりあえずアセンブラとはなんぞやっていう基礎の基礎の基礎の知見を得られたのはよい気づきだと思いま…
第3章おさらい パターンマッチ ガード asパターン where Prelude> let xs = [(1,3),(4,3)] Prelude> [a+b | (a,b) <- xs] [4,7] ガードはまたげるけどパターンマッチはまたげない let whereが文なのにたいしletは式なのでどこでも書ける 関数の構文に対して…
Scala 複数のデータ型を有するリストを作成することも可能。 scala> val a = List(1, 2) a: List[Int] = List(1, 2) scala> val a = List(1, "hoge") a: List[Any] = List(1, hoge) Haskell https://www.shido.info/hs/haskell4.html#list リストの要素の型…
そのままなぞっただけです。タプルの要素取得にはfstとsndがありますが、trdに相当するものはない、というお話。そもそも、要素数3つ以上のタプルでfstとかsndとかするとエラーになります。 で、要素数が3以上のタプルから要素を取り出すには独自関数を作成…
dice_io.hs 7.2. 非ボックス化型とプリミティブ演算 アンボックス化タプルの使い方がよくわからないので、コードでゴニョゴニョした例その1。
replicateM - Hoogle これな、あんまりドヤ顔で間違ったこと言うとまさかり飛んでくるやつな。気をつけんとな。 import Control.Monadって書くと使える組み込み関数。 replicateM :: Monad m => Int -> m a -> m [a] base Control.Monad replicateM n act pe…
Haskell のセクションと中置記法 | すぐに忘れる脳みそのためのメモ ``で中置 let hoge x y = x / y hoge 4 2 4 `hoge` 2 Haskell のリスト操作 Haskell のリスト操作 : tnomuraのブログ [1,2,3] ++ [4,5,6] 0:1:[2,3,4] [1]:2 -- これは出来ない プログラミ…
Haskellを勉強するとなまら米田さんが出てくるので、どういうお方なのかちょっと調べてみた 米田信夫 - Wikipedia 米田の補題 - Wikipedia YonedaとCoYoneda、そしてFunctor - capriccioso String Creating(Object something){ return My.Expression(somethi…
ひどく個人的なメモ。 Prelude> import Data.Bits Prelude Data.Bits> 64 `shiftR` 6 1 Prelude Data.Bits> 64 `shiftR` 5 2 Prelude Data.Bits> 64 `shiftR` 4 4 Prelude Data.Bits> 64 `shiftR` 3 8 Data.Bitsに定義されているやつでシフト演算できる。 M.…
in命令まで終わった。はず。 xchg ax,axは事実上何もしていないからnopとか、ndisasmが古すぎる機械語は逆アセンブルしてくれないからpop csは無視するとか、ジャカジャカハマるところがあった。 あと、IN命令のFixed Portが何のことなのかわからなかったり…
Haskell アクション 超入門 - Qiita Haskell アクション 超入門 - Qiita BFはメモリの値を頻繁にいじるため参照透過性もクソもない言語なので、インタプリタも参照透過性なんて存在せず、副作用や状態を持たないとどうにもなりません BFの世界は参照透過性の…
ニチアサクズ三銃士・真を連れてきたよ pic.twitter.com/zTfr6tyngE— ばつ@2日目東C44 (@batuACT3) 2014, 7月 20 初見殺し三銃士を連れてきたよ pic.twitter.com/24cGXYDfG5— Jun Inoue (@jun0inoue) 2014, 10月 10 ごめんなさい、タイトルはノリです。 Has…
型注釈を書く癖をつけてみたかったけど、ちょっと戸惑ったのであった。 引数 -> 引数 -> 最後に戻り値 という流れをつかんでおきたかった。 shuffle :: [Int] -> [Int] shuffle xs = [ x * 2 | x <- xs] main = do print $ shuffle [1..9] Haskell - Wikiped…
カンマ区切りで連結 import Data.List intercalate ", " ["ab", "cd"] 区切らないで連結 import Data.List intercalate "" ["ab", "cd"]
リスト内包表記はリストのフィルタリング、変換、組み合わせを行う方法である。 左側でやりたいことを書いて、右側でリストを束縛(定義)する。 右側で定義した変数について、左側でやりたいことを定義する感じ。 例。 ghci>[ x*2 | x <- [1..10]] [2,4,6,8,1…
Haskellによる8086逆アセンブラ開発入門 - Qiita Haskellによる8086逆アセンブラ開発入門 - Qiita mov命令の残りを実装 disasmが命令の長さも返すように修正 複数の命令を含んだバイナリを渡すと逆アセンブル結果をリストで返す関数を実装(途中) リスト内包…
Haskellによる8086逆アセンブラ開発入門 - Qiita Haskellによる8086逆アセンブラ開発入門 - Qiita とりあえずmov命令は全部実装した。はず。 コミットにも書いたけども、Segment Register to Register/MemoryとRegister/Memory to Segment Registerのテスト…
DisAsm.2014111213.hs Haskellによる8086逆アセンブラ開発入門 - Qiita Haskellによる8086逆アセンブラ開発入門 - Qiita とりあえずmov命令の2番目Immediate to Register/Memoryを実装。 たぶんできているはず。ハンドアセンブルして逆アセンブルしてテスト…
shiftLは左シフトで、.|.で論理和、というかOR。 Prelude> import Data.Bits Prelude Data.Bits> (1 `shiftL` 2) .|. (1 `shiftL` 1) 6 なお、Data.Bitsモジュールが必須。 島ぶくろ [Haskell] ビット操作、ビット演算ライブラリ Data.Bits を試してみる。 …
再帰を利用したマージソートをHaskellで実装するというドリルをやっていたのだけれど、 【解答例】Haskell 超入門 - Qiita 【解答例】Haskell 超入門 - Qiita 途中までしか出来なかった…そもそもdropとtakeしただけで再帰のさの字も出てこない自分のクソ実装…
とりあえずdropとtakeとwhereを慣らしてみる。 my-merge.2014102602.hs