サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
猫
tune.hateblo.jp
うちの秘書を紹介します。 twitter.com けいちゃんです。年明けに挨拶とかできます。 あらかじめお断りしておきますが、「ゆ」ではじまる某日常系アニメに登場する女子高生とは無関係です。 ふみおちゃんにちねられそうになったり、ゆずこに脇腹掴まれたりするあの娘とは一切関係ありません。 ご了承ください。 関係ねえつってんだろ!! 顧客が本当に欲しかったもの というわけで、Twitterのリマインダーbotを作りました。 github : https://github.com/tokiwoousaka/secretary-bot ご無沙汰してます。ちゅーんさんです。 この記事は、2017年のHaskellアドベントカレンダーに盛大に遅刻したやつです。 言い訳はいろいろあるんですが、けいちゃんの可愛さに免じて許してやってください。 元々は、Haskellで音を出して遊んで記事にしようかなーとか
とんとご無沙汰してます。ちゅーんさんです。 仕事とかその他とか、なかなか更新するネタや切っ掛けが無かったんですが、 今日は半日くらいごにょごにょやってた進捗があるので書いときます。 Haskellでスライド書きたいんだーっていう変な人な人向きです。 何したか Haskellでスライドを作りやすくした なんで もともと、Haskellで高橋メソッドなスライドをちゃかちゃか作るべく、 Takashi Monad https://github.com/tokiwoousaka/takahashi とかいうライブラリを公開して、ドッグフーディングしていたのですが、 まず使いにくよねっていうのと、毎回ビルド出来るように色々設定するの面倒くさいよねーっていう問題を抱えてました。 勉強会に向けてのんびりスライド作るぶんには、それでも問題にならねーべーとか思ってたんですが、 名古屋に転職してからというもの
外はすっかり真夏日よりですが、今日も冷房の前ででプログラミング充しています。 嘘です、ずっとスプラトゥーンやってました。 結果として相変わらずGithubのContributionsは真っ白です。 どもども、ちゅーんさんです。 このエントリは、ちゅーんさんによるポーカー開発連載記事の第七回目です。 過去のエントリはこちら 第一回 リストのシャッフルとカードの定義 第二回 ポーカー・ハンドの判定をする 前編 第三回 ポーカー・ハンドの判定をする 中編 第四回 ポーカー・ハンドの判定をする 後編 第五回 カードの入れ替え処理を作る 第六回 CPU対戦機能を付けよう 前回までは、やや場当たり的に作って行きましたが、 そろそろ程度整理しないと全体像が掴みにくい規模になってきたようです。 そこで今回は、Haskellのビルドツールについて簡単に紹介/説明し、 ここまで書いたプログラムをプロジェクトと
はいはいどうも、最近はずっとドラクエやってます。 ちゅーんさんです。 人生ではじめてプレイしたRPGってドラクエ6だった気がします。 スマフォ版で久々にプレイしたのですが、やっぱりアレです。 バーバラちゃん、いいですね。 あ、ひとまずラスボス倒したので、今は3やってます。 ポカパマズさああああああん!!!! はい。 というわけで、 この記事はちゅーんさんがイマドキのHaskellのビルドツールである、 stackを2日くらいぐりぐりいじって覚えた使い方をまとめようと思います。 ざっくりと、stackってどんなもんよ、みたいな話は http://qiita.com/tanakh/items/6866d0f570d0547df026 の前半を読むとだいたいわかりますので、 ここでは実用的な具体例はさておき、とにかく動かしてみたい人に向けて、 「ここに書かれてる通りに色々やったら、なんとなくst
はいはい、どうも、お風呂大好きちゅーんさんです。 お風呂あがりの乳酸菌とかたまりませんね。最近はアセロラジュースとか飲んでます。 はい このエントリは、ちゅーんさんによるポーカー開発連載記事の第五回目です。 過去のエントリはこちら 第一回 リストのシャッフルとカードの定義 第二回 ポーカー・ハンドの判定をする 前編 第三回 ポーカー・ハンドの判定をする 中編 第四回 ポーカー・ハンドの判定をする 後編 前回からの修正点 フルハウスの判定処理なんですが、改めて調べると、 「3枚組の最強カード」「2枚組の最強カード」の順に比較しなくてはいけないらしいですね。 前回は2枚組か3枚組の両方から一番強いカードを選択していましたが、これじゃまずいです。 同じ強さのカードは4枚しか無いため、ドローポーカーの場合は3枚組で引き分けるという事はありえないので、 最強カードとしては3枚組の1枚を選択すれば良い
ポーカー開発の連載書きながら、 改めてコード書くより日本語書くほうが難しいなぁと感じています。 ちゅーんさんです、おはこんばんちわ。 ドクター・スランプネタなんて今時通じる人居るんですかね、 ちなみに実家には全巻揃っていたので、ひと通り読みました。 聞いてないですね はい このエントリは、ちゅーんさんによるポーカー開発連載記事の第四回目です。 過去のエントリはこちら 第一回 リストのシャッフルとカードの定義 第二回 ポーカー・ハンドの判定をする 前編 第三回 ポーカー・ハンドの判定をする 中編 状況整理 さて、いよいよポーカー・ハンドの判定処理も大詰めです。 簡単に現状を整理して、残りのやる事を再確認しましょう。 まず、手札は5枚である必要があり、予めソートしておく事で判定処理を行いやすいという理由から、 次のようなHand型を定義しました。 newtype Hand = Hand { f
はいどーも、我が家にポーカーチップとトランプカードが届きました。 ポーカー作っていたら、うっかりポーカーそのものが楽しくなってしまったちゅーんさんです、ハロ/ハワユ テキサス・ホールデム本当に楽しい・・・楽しいです・・・ 楽しい・・・楽しい!!やろう!!やろうよ!一緒にやろうよー!!! ・・・落ち着きました。 そんなわけで、このエントリは、ちゅーんさんによるポーカー開発連載記事の第三回目です。 過去のエントリはこちら 第一回 リストのシャッフルとカードの定義 第二回 ポーカー・ハンドの判定をする 前編 ポーカー・ハンドの判定条件を整理する 前回、ワンペアからストレート・フラッシュまで、 全てのポーカー・ハンドを判定する関数の型を、以下のように定義しました。 onePair :: Hand -> Maybe (PokerHand, Card) twoPair :: Hand -> Maybe
はいはいどーも、皆さん進捗どうですか? 毎度おなじみのちゅーんさんですこんにちは。 この記事は、ちゅーんさんの連載エントリ「Haskellでポーカーを作ろう」の第二回目です。 第一回 リストのシャッフルとカードの定義 今回から2〜3回にわけて、ポーカー・ハンドを判定する処理を作っていきます。 若干ややこしい部分も含みますので、一つ一つ確実に理解しながら進めていきましょう。 尚、この記事では各ポーカーハンドの説明は行いません。 ↓↓↓覚えてないよーって人は、Wikipediaを見ときましょう↓↓↓ http://ja.wikipedia.org/wiki/%E3%83%9D%E3%83%BC%E3%82%AB%E3%83%BC%E3%83%BB%E3%83%8F%E3%83%B3%E3%83%89%E3%81%AE%E4%B8%80%E8%A6%A7 はじめに この連載エントリでは、なるべく
はいはいどーも、進捗ダメです。ちゅーんさんです。 基本的にコンスタントに何かを生み出し続けなくてはいけないのが、 ギークなアクティブニートの使命なわけですが、一日の半分以上は睡眠とドラクエに当てらています。 人生なんてそんなものです。 えーっと そういえば、勉強会とかTLとかで、 「すごいH本読んで、基本的な事はわかったと思うけど、Haskellで具体的なプログラムを開発するイメージが出来ない」 なんていう話を聞くことがたまにあって、そんなに大きくなくても良いので実践的なやさしい文章が増えると良いなぁとか、 ずっと思っていたわけです。 で、そういう状況でドラクエのカジノのポーカーをプレイしたりしていると、 「あ、ポーカー作ろう」っていう気分になったりするじゃないですか。 なったんですよ。 んなわけで、今回からちょっとづつ、Haskellを使ってCUIでプレイできるポーカーゲームを作っていき
PRITZサラダ味は神、異論は認めない。 はいどうも、直接本題に入ったら負けだと思っているタイプのHaskeller、ちゅーんさんですこんにちは。 今日も前回に引き続き、「Haskellでオブジェクト指向」と題しまして、objectiveを紹介したいと思います。 本題に入る前に 前回の記事に、objective開発者の@fumievalさんからコメント頂きました。 最新のobjectiveでは`stateful handle s where handle` …の代わりに、 {-# LANGUAGE LambdaCase #-} stringObject :: String -> Object StringObject IO stringObject s = s @~ \case GetString -> get SetString s -> put s PrintString -> get
RITZクラッカーは神、異論は認めない。 はいどうも、直接本題に入ったら負けだと思っているタイプのHaskeller、ちゅーんさんですこんにちは。 今日は、「Haskellでオブジェクト指向」と題しまして、objectiveというライブラリを紹介したいと思います。 いんとろだくしょん objectiveは日本人によって開発されたHaskellでオブジェクト指向を行うためのライブラリです。いちおうまだ研究段階といった感じではありますが、 色々といじくり回してみた限り、かなり期待が持てる内容になっているため、紹介します。 近い将来には、Lensくらいには手軽に、 Haskellプロジェクトにオブジェクト指向プログラミングを導入できそうです。 手っ取り早く実装レベルで知りたい人は以下の日本語の論文を読むとよいでしょう。 http://fumieval.github.io/papers/ja/20
はいはいどうも、花粉症で鼻水じゅびじゅばなちゅーんさんです、おこんばんわ。 色々あって現在求職中なのもあり、自分の書きたいコードをゴリゴリ書いたり、理論的な事をがつがつ勉強したりする良い時間を作れていて、だいぶ下請けPG時代に貯まった疲れも取れてきたのかなぁとか思ったりしてます。 これを期に手をつけはじめた事が色々あるので、そのうちいくつかでも自分の中でケジメを付けるまで、もうちょっとのんびりしたいなぁと思い、寄生している実家の母親の顔色と、銀行口座残高とにらめっこしつつ、やりたいようにやってる感じです。 さて、そんな機会を使って、名古屋で開催された「モナド基礎勉強会vol2」へ足を運んで登壇させて頂きましたので、今日はそのレポートというか、雑記みたいなエントリです。 どんな勉強会だったのか こんなんです xbase.connpass.com 「基本」ではなく「基礎」ですから、午前の部でが
gdgdと文章を読みたくない人のためにとっとと本題済ませます。 ちゅーんさんがHaskell上でプレゼン用のスライドを生成するための言語内DSLを公開しました。 Hackage : http://hackage.haskell.org/package/takahashi サンプル兼ドキュメント:http://tokiwoousaka.github.io/takahashi/contents/20150213takahashi.html (ソースコード) Github:https://github.com/tokiwoousaka/takahashi 以上のURLを元によろしくやって頂ければ幸いです。 開発に至った経緯とか はいども、こころぴょんぴょんちゅーんさんです。 皆さん、プレゼンしてますか? プレゼンは大事ですよー、婚活と同じくらいには大事です。 というわけで、 イマドキのプレゼンテ
「Haskellと数学とちょびっと音楽」なんていうシャレオツなサブタイをブログに付けてるのは誰ですか? 俺だよー! 大体、Haskell関連のコミュニティに顔を出していると、 数学科出ましたーとか、物理専攻ですー、とか、そーいう人がわりと多いのですが、 僕は「勉強なんて出来ないんジャー・レッド」だったので、サブタイトルに「数学」なんて入れつつも、 数学の話はほとんど出来なかったりとか出来たりとか・・・結局Haskellの記事しか書いてないですね、はい。 ただ、どちらかというと、Haskellでも処理系どうのとか、パフォーマンス云々とか、 そういう話より型システムでどうやって抽象化するかーみたいな、そういう話のほうがおもしれーとか思ったりしたので、 気づいたら圏論なんかはガジガジしてまして、多少の自己流の知識があったりとかなかったりとかしてるのです。 純粋関数型やらHaskellやらがメジャ
2015-01-05 オブジェクト指向vs関数型プログラミング #関数型ポエム まだやってるんですか、好きですね。 【前編】2014年、オブジェクト指向vs関数型プログラミングの壮絶な宗教戦争は終結 OO陣営最後の牙城DOMというWeb標準のUIを破壊した巨砲Facebook-React - Qiita 関数型言語 - オブジェクト指向vs関数型プログラミングの壮絶な宗教戦争っていつしてたの……? - Qiita あ、そうだ、うちの「関数型プログラミングを勉強する人の毒舌な妹bot」も可愛がってあげて下さい。 「オブジェクト指向vs関数型」なんてしょーもない記事を書いてる暇があったら型無しラムダ計算の勉強でもしたらー?— 関数型妹bot (@functional_bot) 2015, 1月 4 どのようなパラダイムが理想的かという議論にはあまり興味が無いですが、 僕自信は手続きプログラミン
ボドゲ楽しいよね。 最近、家族で遊べないかなぁと思ってドミニオンの標準パックを買ってみたところ、 わりと好評だったのでほくほくしてます。 はい、てなわけで、ちゅーんさんですおばんです。 さて、今日ははる君(@haru2036)が書いた、ハトクラのモナドの記事 http://haru2036.hatenablog.com/entry/2014/12/17/014142 を楽しく読みました。 こういう何か題材を見つけてHaskellで解決しようみたいなアプローチ、 なかなか無いので貴重です。 とても面白い題材なのですが、いくつか気になった点があったのでがばっと改善してみました。 えっ、自分の進捗ですか? それは聞かない約束です( ー`дー´)キリッ ActionPhaseの定義と役割について考えてみる そもそもモナドのなんたるかについては、 ruiccさんの「モナド入門以前」という記事がおもろ
はいどーも、ちゅーんさんです。 最近「楽園追放」見てきたのですが、楽しかったです。(小学生並のry いやあの、普通に良作でしたので、興味のある方なんかは、是非劇場で見に行くと良いと思います。 ハデだし。 いえい はい、で、この記事はあれです。 Haskell Advent Calendar 2014 - Qiita の、7日目の記事です。 皆さん!型は好きですかーっ!? お れ は 好きだぜーっ!!! とゆーわけで、今日は代数的データ型とゆー概念そのものに関する、ちょっといっぱい数学っぽい話をしようと思います。 この「っぽい」っての大事、超大事。 型の足し算 ここにUnit型がありますでしょ。 data () = () deriving Eq 突然ですが、Unit型は1です。 あ、それからここにBool型があります。 data Bool = True | False deriving Eq
はいはい、最近色々とアレがアレしてアレな感じのちゅーんさんですがちゃんと生きてます。安心してください。 もともとekmettによってlensというパッケージが公開されています。 これがすごく強力で便利な代物なのですが、いかんせん巨大で依存関係も複雑なので、使うのに気合が必要という問題があったりします。 根本的な仕組みは複雑であれ大きくは無いので、良く使う機能に限定した小型版lensを実装しました。 以下、HackageのURL: https://hackage.haskell.org/package/reasonable-lens これは何なの lensは複雑な代数的データ型へのフィールドアクセスをぐっと使いやすくするためのライブラリです。 TemplateHaskellによるコンパイル時処理で、アクセサと呼ばれる関数を生成する事で、ややこしいフィールド操作をサポートします。 基本的な機能
前回の記事について、実際に他の方法と比較してみたいという声を頂いたので、それぞれ同じような事をするためのコードを書き下してみました。 オーバーヘッドとかそのへんのパフォーマンス周りについては調べてないです。 きっと誰かがやってくれるさ。 モナド変換子の場合 module Main where import Control.Monad.State data Foo = Foo { foostr :: String , fooint :: Int } deriving Show data Bar = Bar { barstr :: String , barint :: Int } deriving Show ---- changeFoo :: State Foo () changeFoo = modify $ \foo -> foo { foostr = "NYAN" } changeFooB
どーも、いつものちゅーんさんです。 一ヶ月くらい前に、もくもくHaskell会というハッカソンで日比野さん(@khibino)とご一緒したので、 日比野さんの開発したhaskell-rerational-record(以下HRR)というライブラリを(色々教わりまくりつつ)いじいじしていました。 お仕事のちゅーんさんはわりとゴリゴリSQLを書くわけですけど、あの、あれですよ、辛いんです。 もくもく会でも日比野さんと只管愚痴りまくってましたけど、SQLとかね、こんなもの人間の書くものじゃないです。 ね? そんなわけで、Haskellを用いて如何に苦しまず楽しくRDBと戯れるか、というのが本日のお題です。 HRRの特徴 基本的にはSQLをモナディックに生成するためのライブラリで。 普通のアプリケーションで必要になるようなほとんどのクエリはこれだけで書く事ができます。 HRRには、ざっと次のような
どーもー、玄米茶無しでは生きられない20代男子、ちゅーんさんです。 はい。 普段あまりWeb関係の技術とは関わりが無かったのですが、@Lost_dog_さんにご依頼頂き、 2014/1/17 に開催されたCROSS2014(http://www.cross-party.com)にて、言語CROSSというセッションに登壇して来ました。 基本的にHaskellについて語りたくてしょうがない人なので、こういうお話があれば喜んで飛んでいきます。 Google Groupでやりとりしながら準備し、当日直前に顔合わせというわりとドタバタとした感じではありましたが、 普段関わりの薄いジャンルの勉強をしている人達と直接顔をあわせて情報交換するのは、とても良い刺激になりました。 多分、本イベント内で2番目くらいに異色を放っていたセッションだったんじゃ無いでしょうか。 というわけで、僕はHaskellを紹介さ
書きたいネタは色々あるのですが、どれもこれもやたら重くてなかなか筆が(キーボードが)進まないので、 今日は軽く、仕事で思いつきで作ってみたものの話をします。 モダンな言語を使ったシャレオツな設計に慣れてしまうと、なんというか、 下請けプログラマ特有のあのなんとも言えないコードを読むのが苦痛に感じてしまうものです。 ましてやHaskellerにとって、5000行のクラスの中の600行のメソッドだとか、その中のループと分岐と例外処理が入り乱れた11重ネストはもう、 苦行以外の何物でもなく、「なんなの?マジなんなのこれ?罰なの?Sガストの竜田揚げに備え付けのポン酢ではなく、 醤油と七味唐辛子をかけて食べた罪に対する天罰なの?」と、意味もなく天を仰いで祈りを捧げたり捧げなかったりとかするわけです。 えー・・・つまりですね、 こんなん読めるかボケェ(╯°□°)╯︵ ┻━┻ と、こういう事が言いたい
このページを最初にブックマークしてみませんか?
『Creatable a => a -> IO b』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く