TL;DR アドホック多相は型クラスじゃなくても実現できる。 Haskell, Rust, Scalaでは後付けで拡張できるけど、それはアドホック多相の本質ではない。 アドホック多相(Ad hoc polymorphism) ウィキペディアは辞書ではないのはわかっていますが、それでも 英語版WikipediaのAd hoc polymorphismのページを参考に挙げておきます。 ざっくりまとめると 型階層上は関連性のない複数の型の引数に適用できる、多相的な関数 引数の型に応じて、個別の(アドホックな)実装にディスパッチされる と、それだけのこと。 「引数の型によって別の実装にディスパッチされるって、それメソッドのオーバーロードと何が違うの」ってことなんですけど、特に違いはありません。同じです。とはいえ、プログラミング言語によって、実現方法や使い勝手は違います。そのあたりのことを、いくつか
F# のコンピュテーション式には、制御フローのコンストラクトとバインドを使用してシーケンス化および結合できる計算を記述するための便利な構文が用意されています。 コンピュテーション式は、その種類に応じて、モナド、モノイド、モナド変換子、およびアプリカティブ ファンクターを表現する方法と考えることができます。 ただし、他の言語 (Haskell の do-notation など) とは異なり、それらは 1 つの抽象化に関連付けられておらず、便利な状況依存の構文を実現するためにマクロやその他の形式のメタプログラミングに依存しません。 概要 計算にはさまざまな形式があります。 計算の最も一般的な形式は、理解と変更が簡単なシングルスレッド実行です。 ただし、すべての形式の計算がシングルスレッド実行ほど単純であるとは限りません。 次に例をいくつか示します。 非決定的な計算 非同期計算 有効計算 生成的
karino2の暇つぶしプログラム教室のF#編のページです。 理論上がりの人が機械学習屋になってPythonでとりあえずコードは書けるようになった、くらいの人で、 そろそろプログラムって奴を本格的にやってみるか、と思った人を対象に、karino2が暇つぶし程度にプログラムを教える、という事をやるサイトです。 機械学習屋になりたい人向けではなくて、すでになっている人に対してのプログラムの教室です。機械学習は扱いません。 姉妹サイト: karino2の暇つぶしプログラム教室 C言語編(通称c-lesson) モチベーションや背景など モチベーションとか背景とか 進め方 適当に課題をやってもらいつつgitterで質問に答えたり添削したりして、 たまに補足したり説明した方がいいと思う事は本を紹介したり説明をしたり動画を作ったりします。 とりあえず始める人はgitterで自己紹介くらい簡単にしてくれ
Hedgehog automatically generates a comprehensive array of test cases, exercising your software in ways human testers would never imagine. Generate hundreds of test cases automatically, exposing even the most insidious of corner cases. Failures are automatically simplified, giving developers coherent, intelligible error messages.
F# for Fun and Profit eBook This is an eBook version of my site fsharpforfunandprofit.com, created by popular request for people who want to read it offline on their kindle or phone. Special thanks to Roman Provaznik for the final nag. The site (and this book) aims to introduce you to F# and show you ways that F# can help in day-to-day development of mainstream commercial business software. On the
ベン・フィードラーのブログより。 型検査と型推論 型検査とは、あるプログラミング言語で与えられたプログラムを実行し、すべての変数や式が正しい型を持っているかどうかを調べるプロセスです。例えば、文字列は文字列に代入され、算術式は数値のみを使用するなどです。一部の言語では型推論を提供しており、コンパイラに自分で正しい型を見つけるタスクも提供します。言語の特徴に応じて、型検査と型推論の問題は、些細なものから決定不能なものまで様々です。 一般的な用語 完全性 正しく入力されたプログラムを全てチェックできれば、タイプチェッカーは完了です。 健全性 正しく型付けされたプログラムのみを受け付けるものであれば、型検査は健全です。 決定可能性 任意の入力に対して、その入力が問題を満足するかどうかを有限時間で計算できる場合、決定問題は決定可能です。決定可能な問題の例としては、素数判定や充足可能性などがあります
F7 is an enhanced typechecker for the F# programming language, a dialect of ML. F7 pioneers the static checking of security properties expressed with refinement types. Although the original motivation was to check security properties, F7 is not security-specific and is applied in other areas, such as database modelling. The theoretical core of F7 is the typed lambda-calculus Refined Concurrent FPC
連載目次 再帰関数のスタックオーバーフローを倒す話 その1 CPSとCPS変換の話 再帰関数のスタックオーバーフローを倒す話 その1.5 F#での「末尾」についての話 再帰関数のスタックオーバーフローを倒す話 その2 ← 今回 .NETにおける末尾最適化の方法についての話 再帰関数のスタックオーバーフローを倒す話 その2.5 継続モナドと、F#の残念さの話 再帰関数のスタックオーバーフローを倒す話 その3 すべてをあきらめて再帰をwhileに書き直す方法の話 はじめに 再帰関数のスタックオーバーフローを倒す話 その1の続きです。 前回はCPS変換することでスタックオーバーフローが回避できるよやったー!という話でした。 今回は、CPS変換じゃスタックオーバーフロー回避できない場合もあるよ、という話をします*1。 前提知識は、その1の記事を理解していることと、ILがなんとなくわかることです。
先日Visual Studio Express 2012がリリースされましたが、F#のための無償アドインも公開されています。 Announcing F# Tools for Visual Studio Express 2012 for Web! | Visual Studio F# Team Blog このアドインをインストールすると、Visual Studio Express 2012でF#が使えるようになります。 インストール手順 0. VS Express 2012 は、Windows 7以降のOSで利用可能です。Vistaちゃん・・・。 1. Express for Webをインストールします。*1 2. F# Tools for Visual Studio 2012 Express for Webをインストールします。 あわせて読みたい CodePlex Archive : F#
意外と簡単に環境つくれました。Ubuntu は 10.04 LTS です。 ♯Monoインストール Ubuntu の apt で入れました。というか入れてありました。version は 2.10.5 なので F# 入れるには十分新しいようです。 ♯make ツール autoreconf をしたら libtoolize が無いと怒られたので $ sudo aptitude install libtoolで入れました。automake autoconf も必要なのでなければ入れます。もちろん make も必要です。 ♯F# 本体の make と install $ cd ~/download $ git clone git://github.com/fsharp/fsharp $ cd fsharp $ autoreconf $ ./configure --prefix=$HOME/local
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く