サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 10
qiita.com/aiya000
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
ハロー、ハッピーVimmer 今日はVim pluginと、それに対する僕の設定を紹介します。 僕の.vimrc 僕の.vimディレクトリ マクロの実行をdot repeat可能にした まずはシンプルかつ最強なやつです。 kana/vim-repeat: Vim plugin: Enable to repeat last change by non built-in commands dot-repeatは通常1つの動作のみを繰り返しますが、これを使えば、以下のような繰り返しが可能です。 qa マクロ記録開始 dt( 動作1 dib 動作2 3lD 動作3 +q マクロ記録完了 @a マクロを発動 . 下に移動してから、上述のdt(から3lDまでを実行 . 下に移動してから(略 . 下に移動してからry 繰り返し Webページを非同期で表示するようにした これは自作プラグインで、まだドキュ
皆さん、Happy メリー Haskell クリスマス アドベントカレンダーお疲れさまでした 今日はズバリ「人はなぜ、パーサーに惹かれるのだろうか?」ということを追ってみます! (もとい文字列検索等で正規表現ライブラリではなく、パーサーコンビネーターライブラリを使うようになった人(僕)の、それまで道筋を。) 以下、筆者の私感による説明になります。 この記事の対象者 / 非対象者 この記事の対象者 パーサーコンビネーターが難しいものだと思っている人 パーサーコンビネーターをカジュアルに使ってみたい人 この記事の非対象者 パーサーコンビネーターの入門をしたくてこの記事にたどり着いた人 すみません、この記事は具体的な入門を促す記事ではありません。 参考までに…… 僕はこの本でパーサーコンビネーターへの入門を果たしました プログラミングHaskell なぜ正規表現でなくパーサー(コンビネーター)を
まとめ コード全文は結構長いのでこちら learning-Haskell/verbose_errors.y - aiya000/learning-Haskell - GitHub 重要なのは下記の2点です。 lexerがTokenと共にTokenPosを集積すること %errorhandlertype explist 仮定する知識 happyでパーサを書ける レキサ、パーサが何をするものか、なんとなくだけどわかる MonadTransとGeneralizedNewtypeDerivingでモナドを組み立てられる optional(わかるとソースが見やすい) lensが使える ここでしたいこと 「Happyでパースエラーで列行番号とどんなミスマッチが起こったか報告する」とは? それは… happyはデフォルトで、詳細なパースエラーを表示するための機能を有効にしていません。 ですので、パースエ
qiita.com
この記事はブログ版の引用です。 ブログ版では、一部のスタイルが装飾されている。 もしくはQiita版では崩れているスタイルが正しく表示されます。 また、ブログ版の内容は優先して修正され、Qiita版の内容は古い場合があります。 この記事はHaskell (その3) Advent Calendar 2017の 21日目の記事です! この記事にはSS表現、ラブライブが含まれます。 これらが苦手な方はブラウザバックを推奨します。 記事一覧 - ことり、穂乃果と一緒に学ぶHaskell(入門) 記事一覧 - にこ、希と一緒に学ぶHaskell(番外) 更新履歴 - μ'sと一緒に学ぶHaskell 前回の型ライブ! 放課後、部室に集まって、よく知られたGHC拡張について語り合う にこっち と うち。 希「GHC拡張っていっぱいあるんやね!」 にこ「Haskell reportに『実験的な機能を取り
※記事中のソースコードは擬似的なものです ※記事ではVisualStudioのWindowsフォームアプリケーションを題材にしていますが MFCや他のGUIアプリケーション開発でも活用できるかと思います WPFでないWindows Form Applicationでは、class MainForm : FormのようなForm継承クラスが1つの画面を表し、 MVCで言うViewとControl…そしてModelとしての機能も、そのクラス内に集約しがちです。 例えば以下です。 ※目と頭に悪いコードですので、内容を詳しく考える必要はありません class Hogeから取ってきたデータを ボタンクリックにより検索するフォームのイメージ例 ※Hoge.FetchAll()はDBからなんらかのデータ列を配列として取ってくるメソッドとする namespace Foo { public class Fo
存在型はheterogeneousリストなどの例がわかりやすいですけど、Rank2Types (or RankNTypes) はなかなかわかりやすい例がない気がしますー。 今回、存在型とRank2Typesを使って、いい感じなコード例を作ったので報告いたします :) What is Rank2Types ? どのようなものであるかは、こちらで示されています haskell.org - Rank-2 Types 仮定する知識 存在型 (ExistentialQuantification) ここでわかる -> Haskell/存在量化された型 - Wikibooks IsString (OverloadedStrings) 文字列リテラルをText型やByteString型として (IsString a => a型として) 扱えるようになるやつ 具体的にはs = "ahoge" :: IsSt
今までの印象 型からして明らかに常に右を取る do式ののりづけ関数 今回気づいたこと 値の世界について言及されていないから、左の値を取ることがある m >> n = nといった法則は要求されてない 事の発端 事の発端はMonadThrowの(>>)の要請するこの法則を見た時に気づきを得た。
Haskellの例外、今はコレ! Control.Monad.Catchモジュール ドーモ、最近Haskellを拠り所の一つとして生きているあいやです。 Twitterで「ソースをいかにHaskellらしく書くか?」ということを質問して、例外型についての知見が得られたので記事書きます。 更なる知見もまだまだもっと募集中。 追記 exceptionsパッケージよりもスレッドセーフである(らしい)、safe-exceptionsパッケージがリリースされています。 (Please see 続・Haskellの最近の例外ハンドリング - syocy’s diary) 非同期例外を用いる場合はこちらを使ったほうが良いようです。 exceptionsのControl.Monad.Catchモジュールが safe-exceptionsのControl.Exception.Safeモジュールに対応しており
class Kawaii def initialize @messageList = [ 'おはよう、よく眠れましたか?', '朝ごはん、もうできてますよ! ずんだもち。', "モナド? 単なる自己関手の圏におけるモノイド対象だよ。\n何か問題でも?", 'むちむちじゃありません! もちもちです!', "皆のハート打ち抜くぞ〜\nずんだアローシュート!", "お口開けてください、あーん♡\nたこ焼き味のずんだもちです!" ] end def message(_) n = rand(0 .. @messageList.count() - 1) @messageList[n] end end アッアッ、このクラスをロードしたい、今したい。 そう…なんというかこう…チェック用のコードを書くまでもなく…すぐ動かしたい! そこでrepl.vim! repl.vim repl.vimはujihisaさ
このページを最初にブックマークしてみませんか?
『@aiya000のマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く