ブックマーク / ryota-ka.hatenablog.com (8)

  • ユースケース層が投げうるエラーの型を「量化した open union」にしておけば複数のユースケースを合成したときに上の層でエラーハンドリングが楽にできて最高です! - ryota-ka's blog

    この記事は以下のページに移転しました. blog.ryota-ka.me この記事は Haskell Advent Calendar 2020 20日目の記事です. TL; DR タイトル 問題設定 ユースケース層とサーバ層が存在する Web アプリケーションを考える.サーバ層はユースケース層を呼び出すことができるが,ユースケース層はサーバ層について無知でなければならない. +----------------+ | server layer | +-------+--------+ | depends on +-------v--------+ | use case layer | +----------------+ このようなアプリケーションのAPI リクエストハンドラにおいて,複数のユースケースを合成して呼び出すケースを例に挙げ,それぞれのユースケースが投げうるエラーをうまく扱う o

    ユースケース層が投げうるエラーの型を「量化した open union」にしておけば複数のユースケースを合成したときに上の層でエラーハンドリングが楽にできて最高です! - ryota-ka's blog
  • 『形式意味論入門』を Haskell に書き下す (後編) - ryota-ka's blog

    この記事は以下のページに移転しました. blog.ryota-ka.me 前編はこちら ryota-ka.hatenablog.com §8 発話文脈・変項割当 という文を発話したとする.この文は,代名詞 と の2つの指示対象が発話の状況から明らかなときにのみ適切である.このように,文脈に依存して意味が初めて定まる言語表現を直示 (deixis) という.指示対象を明らかにするため,次のように代名詞に指標 (index) を振ることにする. と に と という異なる指標が割り当てられているのは,それらが相異なる外延をもつことを表している. 既に述べたように,この文の外延は および の指示対象が文脈から定まることで初めて計算することができる.このような文は自由変項*1を含んだ開いた項 (open term) として見做すことができる.このような発話に際しての状況を utterance con

    『形式意味論入門』を Haskell に書き下す (後編) - ryota-ka's blog
  • 代数的データ型と初等代数学 - ryota-ka's blog

    この記事は以下のページに移転しました. blog.ryota-ka.me 「関数プログラミングとはなんですか?」と問われたときには「デ,データファースト……(震え声)」と答えることが多いのだが,実際 Haskell や OCaml などの言語を特徴付けるものとして,代数的データ型 (Algebraic Data Type; ADT) の存在は無視できないだろう.その有用性ゆえに,近年では新たな言語の策定の際にその概念が輸出され,RustSwift などの言語にも採用されている. 「代数的データ型とはなんですか?」と問われたときには―問われたことがないのでわからないのだが―おもむろに ghci か utop を立ち上げて,解説を始めるのではないかと思う.ひとしきり解説をした後,「つまり直積の直和なんですよ〜🙌✨」と言って話を締めくくるだろう. int 型や float 型など,「メモ

    代数的データ型と初等代数学 - ryota-ka's blog
  • 開発効率向上 tips vol.1 -ターミナル・シェル編- - ryota-ka's blog

    この記事は以下のページに移転しました. blog.ryota-ka.me 最近弊社でも大学生のエンジニアインターンが増えてきて,彼らの成長のために,開発にあたっての知見を効率的に共有する手段を色々と模索している.こういった知見は再利用性も高く,社内に閉じている必要もまったくないので,こうしてブログに書き溜めていくことにしてみようかと思う.第一弾として,端末エミュレータ上でのオペレーションの効率化について記す. ソフトウェアの開発をやっていると,なんだかんだで端末エミュレータというインタフェースの上で,シェルを使ってオペレーションを行うことが多い.開発に用いるマシンの OS はたいてい macOSLinux の何かしらのディストリビューション (Ubuntu が多いか?) だし,プロダクション環境での運用は Linux を前提することが多いだろう.また,Docker の普及により,Li

    開発効率向上 tips vol.1 -ターミナル・シェル編- - ryota-ka's blog
  • 株式会社ラブグラフを退職しました - ryota-ka's blog

    2017 - 04 - 21 株式会社ラブグラフを退職しました 4月21日を以て株式会社ラブグラフを退職した.最後のわがままで,今まで使ったことのない有給休暇を消化させてもらえることになったので,5月半ばまでは在籍することになっているが,ともかく今日が最終出社日だった.2015年3月頃から手伝っていたので,およそ2年に渡って関わり続けてきたことになる.長い間,様々な人たちから「やめろやめろ」と言われていながら,ようやく退職を決意することにしたわけであるが,以下に主たる理由を3つ挙げる. 第一に,今の組織に留まり続けても,今後自分にとって成長がないだろうと感じた. 初めの頃は,メンバーもごく少なかったこともあり,自分でサービスを作っているという実感があったが,ビジネスサイドの人間が増え,力を持つようになると,単に彼らの注文をこなすだけの作業が格段に増えた.「社内外注」とは言い得て妙なり,他人

    株式会社ラブグラフを退職しました - ryota-ka's blog
  • Vim script でジェネレータを作ったり、遅延評価してみる - ryota-ka's blog

    この記事は以下のページに移転しました. blog.ryota-ka.me この記事は CAMPHOR- Advent Calendar 2016 8日目の記事です. はじめに 日時間の2016年9月12日に,Vim 8.0 がリリースされた.Vim 7.4 のリリースからはおよそ3年振り,Vim 7.0 からは実におよそ10年振りのバージョンアップだそうだ.Vim 8.0 では様々な新機能が追加されたが,中でも Vim script にラムダ式が追加されたのには目を引くものがあった. ラムダ式の登場により,標準の map() 関数や filter() 関数の使い勝手が改善されたが,これらで遊んでいるうちに,似た操作をリストだけではなくイテレータに対して適用したいという欲求が自然と生まれてきた.しかしながら,Vim script にはリストはあれど,イテレータなどというものは存在するはずも

    Vim script でジェネレータを作ったり、遅延評価してみる - ryota-ka's blog
  • パターンマッチなんか書いたら負け (モナドがあるから) - ryota-ka's blog

    この記事は CAMPHOR- Advent Calendar 2015 26日目の記事です. はじめに (弁明) 個人的な意見といたしましては,別にパターンマッチを使おうが負けだとはこれっぽっちも思っておりませんし,むしろ,Haskell におけるパターンマッチは非常に強力な言語機構であり,見通しよく処理を記述できる素晴らしい機能だと思っています.記事のタイトルは,単に「id:ryota-ka は将来こういうことを言っていそうだ」と過去に言われた言葉をそのまま引用したものであり,私自身の主義主張とは何ら関わりのないものである旨をここに記しちょっとまさかり投げるのやめて痛い,痛いから! この記事の趣旨について Haskell は,圏論という分野から幾分か抽象化のアイディアを得ており,様々な型を Functor や Monad といった型クラスのインスタンスとすることで,それぞれの型に対する処

    パターンマッチなんか書いたら負け (モナドがあるから) - ryota-ka's blog
  • 『形式意味論入門』を Haskell に書き下す (前編) - ryota-ka's blog

    この記事は以下のページに移転しました. blog.ryota-ka.me 一昨年のゴールデンウィークに池袋のジュンク堂を訪れた際,『形式意味論入門』という表題のに目が止まり,数学や論理学を用いて自然言語表現の意味を形式的に考察する学問分野があることを知った*1.また,その道具立てとして単純型付きラムダ計算が用いられていることが,なおのこと私の興味を惹いた.ラムダ計算といえば,読者の多くが計算機科学分野での応用を思い浮かべると思うが,Richard Montague*2 が自然言語分野に応用して以来,そちらの方面でも道具立てとして用いられているようである. 形式意味論入門 (開拓社叢書) 作者:拓郎, 田中開拓社Amazon このは,Irene Heim と Angelika Kratzer による Semantics in Generative Grammar (以下 Heim and

    『形式意味論入門』を Haskell に書き下す (前編) - ryota-ka's blog
  • 1