(.) . (.) の型
初めましての方が多いかもしれません。にわかプログラマのtechno_tanoCです。前にふとghciで:t (.) . (.) と打ち込んでみたところ、(.) . (.) :: (b -> c) -> (a -> a1 -> b) -> a -> a1 -> c と表示されました。にわかの私はこれだけでもう大混乱です。(b -> c)って何だ!(a...
View ArticleTera TermでDockerにattachしたら面白かった(小並感
Tera Termを複数開いて、同じサーバにログイン後、同じコンテナにattachするとコンソールが同期する。それだけ。
View ArticleHaskellで正規表現
Haskellで正規表現を使った覚書。最初にマッチした部分を取得firstCapture :: String -> String -> String firstCapture source pattern = head . mrSubList $ source =~ pattern firstCapture "abcdefg" =~ "a(\\w\\w)d\\w\\w) ==...
View ArticleRubyで正規表現を使った抽出
rubyって楽で良いですよね。今日もその良さを感じたのでお裾分け。最初にマッチした部分を取得したいことってよくありますよね。文字列の中からfooの後に連なった最初の数字を取得したいとします。冗長に書くとこんな感じですかね?if match = "foo123bar456".match(/foo(\d+)/) digit = match[1]...
View Article「関数型」というジャンル
多くのプログラミング言語で関数型プログラミング要素が取り込まれるようになって久しいです。Java8でラムダ式が導入された時は大きな話題になりました。C#では2.0でジェネリクスが使えるようになり、3.0ではラムダ式と型推論(のようなもの)も使えるようになりました。ClojureやScalaでは基本的にイミュータブルな値を使うコーディングが推奨され、関数合成も使います。時には遅延評価も使います。Rub...
View ArticleWordPressで作られたサイトにログインする
やりたいことはタイトルそのまま。haskellで書く。使うパッケージはhttp-contuid 2.1.8とutf8-string 1.0.1.1(stackのlts-3.14){-# LANGUAGE OverloadedStrings #-}importqualified Data.ByteString.Lazy.UTF8 as U import Network.HTTP.Conduit ap...
View Article精巣捻転になりました
こんにちはtechno_tanoCです。学校の定期試験がひとまず終わって、追試に向けて勉強をしなくてはと思いながらも怠惰な性格なもので勉強せずに部屋でゴロゴロしていたのですが、精巣捻転になりました。治療を受けたところすっかり良くなって、今のところ痛みは全くないです。事の発端は今日の13時頃、トイレに行ったあともうちょっとゴロゴロしようと布団に潜り込んだ時に腹部に違和感。最初は「お腹の調子が悪いのかな...
View Articleなぜ初心者にHaskellのファンクターは怖いと言われるのか(翻訳)
英語の勉強のためにWhy say the design of functor in Haskell is terrible for NEWBIE | neutronestを翻訳してみました。以下翻訳ファンクターって何?今日私が話したい"ファンクター(functor)"は圏論(category...
View Articleelixir1.3で入りそうな機能
こんにちは。最近haskellの書き方を忘れてきたtechno-tanoCです。「elixirのwhenってEitherっぽいよなーでも失敗した瞬間失敗したものが返ってくるから使いづらいなーもう自分でマクロ作ろうかなー」と思いながらネットの海を漁っていたら(海だけに)、whenにelse節が入りそうなコミットを見つけました。そのコミットのリンクはこちらissueを見た感じ、「マッチに成功した時は良い...
View ArticleTAPL4章の型無し算術式の実装
型無し算術式の実装 - プログラミング勉強日記に影響されて実装。data Term = TmTrue | TmFalse | TmIf Term Term Term | TmZero | TmSucc Term | TmPred Term | TmIsZero Term deriving(Eq, Show) isnumericval :: Term -> Bool isnumericval...
View Articleいまさらhaskellの状態管理に関して一言いっとくか
今回の記事はパッと出の思いつきで書いたものなのでぶっちゃけ読まないでいいですタイトルはそろそろFreeモナドに関して一言いっとくかのパクリオマージュです。「そろそろhaskellの状態管理に関して一言いっとくか」ではありません、「いまさら」です。要するに特に目新しいことではありません。もっと言うと状態管理というかほとんどモナドトランスフォーマーの話です。導入純粋関数型言語であるhaskellは「状態...
View ArticleRubyのcase式のたくさんの使い方(翻訳)
英語の練習のための翻訳以下翻訳if / elsif式を使うときはいつでも代わりにRubyのcase式を使うことを考慮してください。この投稿ではいくつかのユースケースと実際にどのようになっているか見てみましょう。ノート: 他のプログラミング言語ではswitch式として知られていますRub Case &...
View Articleshinosaka.hs #2 Elixir入門を開催した
2016年9月15日にshinosaka.hs #2としてelixir入門勉強会を行いました。イベントページはこちら前回のhaskell入門がアレ過ぎて、かなり凹んだのですがめげずに頑張りました。最近はelixirが熱いということで、haskell入門を行った前回とは打って変わって、今回はelixirの入門を行いました。rubyでも並行処理が熱いですし。場所は前回同様、SOU...
View ArticleShinosaka.hs #3 Elixir入門をした
やってしまった〜〜〜!!やってしまいました大失態です。持ってくるノートパソコンを間違えました。僕は現在、2台のノートパソコンを持っています。片方は中古で買ってUbuntuを入れたThinkPadで、もう一方はWindowsの入ったLenovo...
View Article関数型プログラミングに関わる本の書評
この記事はShinosaka.rb Advent Calendar 2016の19日目の記事です。持っている本一覧このACではrubyに限らず、どのような記事でも良いらしいので、現在僕が持っている関数型プログラミングに関係する(と思う)本の書評を書いてみようと思います。現在持っている関数型絡みの本はすごいHaskellたのしく学ぼう!Real World...
View Articleチェビシェフの不等式の証明
記事を書けばチェビシェフの不等式の証明の勉強になると思ったので書きます。案の定勉強になりましたが、予想以上に時間がかかった・・・(主にはてなブログとTeXの相性の問題で)証明のスケッチは1. 確率分布の分散の定義 2. 確率変数の値によって2つのグループに分ける 3. の部分を置き換えて不等式にする 4. の部分を捨てる 5....
View ArticleHaskellerから見たElixir
なぜこれを書いたか誰かHaskellしか関数型を知らない僕にElixirの特徴(特にHaskellとどう違うか)を教えて欲しいです#elixir— Tatsuki@Vim (@ttk_vim) 2017年5月22日テクノさん案件だ— Haskell (@aiya_000) 2017年5月22日オッス!オラ、テクノ— techno_tanoC📕 (@techno_tanoC)...
View Article自分のプログラミング遍歴
なぜこれを書くか年末には大掃除しますよね?そういうことです。プログラミング歴も5年半を超え、色々なことがあったのでまとめておきます。できるだけ時系列順に書いていますが同じ時期に起こったことや長期間に渡る話もあるので正確性には欠けると思います。自分用PC「なぜプログラミングを始めたのですか?」最近、IT企業の方と真面目な話をすることが増えたせいかこう尋ねられることが増えました。プログラミングを始めた時...
View ArticlePIXIV SPRING BOOT CAMP2018に参加しました!
pixiv SPRING BOOT CAMP 2018とは参加すると圧倒的猛者になれるようです。pixiv SPRING BOOT CAMP...
View Articlecurl で GitHub に SSH 公開鍵をアップロードする
SSH公開鍵を手でアップロードするのが面倒なので自動化しました#!/bin/bash key_name=`hostname` pub_key=`cat ~/.ssh/id_ed25519.pub` json=""" { \"title\": \"$key_name\", \"key\": \"$pub_key\" } """ read -sp "Enter your accout name: "...
View Article