タグ

F#に関するl-_-llのブックマーク (10)

  • パイプライン演算子の歴史 - まめめも

    (You can read this article in English.) Ruby の開発版にパイプライン演算子(pipeline operator)が試験的に導入されましたが、いろいろあってプチ炎上になっています(チケット)。 せっかくの機会なので、パイプライン演算子の歴史を調べてみました。付け焼き刃の調査なので、間違ってたら教えてください。 パイプライン演算子とは こんな感じのものです。 x |> f |> g |> h # h(g(f(x))) と同じ意味 h(g(f(x))) という関数適用の式は、関数が呼ばれる順序(f→g→h)と、プログラムの字面上の順序(h→g→f)が逆でわかりにくいとされます。この問題は、特に、関数が大きくなったときに顕著になります。 wonderful_process_h( marvelous_process_g( fantastic_process

    パイプライン演算子の歴史 - まめめも
    l-_-ll
    l-_-ll 2023/04/06
    "F# がパイプライン演算子を導入したのは 2003 年らしい" "余談ですが、F# で広まったパイプライン演算子は、2013 年に OCaml に逆輸入されました"
  • 詳説コンピュテーション式 - ぐるぐる~

    コンピュテーション式とは コンピュテーション式とは、機能を制限したマクロです。 ・・・では投げやりすぎるので、もうちょっとだけ説明を試みると、 「式変形によって言語の用意する構文の意味をカスタマイズできるようにする仕組み」です。 モナド用の構文として紹介されることもありますが、それはコンピュテーション式という仕組みの上でモナドを扱っているだけに過ぎません。 もっとも、コンピュテーション式はモナド用の構文として使うことが一番多いでしょうから、 モナド用の構文と理解しても問題はないでしょう。 また、このような状況を考えると、モナド以外のことにコンピュテーション式を使う場合は、 現状では「これはモナドではありません」という表明をドキュメントなりなんなりでしておくのが無難でしょう。 特に、let!とreturnを提供する場合でコンピュテーション式をモナドではない構文とする場合は、 うるさいくらいそ

    詳説コンピュテーション式 - ぐるぐる~
  • F# Programming

    WHAT'S NEW 2022/07/23 F# Junk Scripts: 二分木と Lisp のリストを追加 2022/07/18 F# Junk Scripts: 哲学者の事を追加 2022/07/17 F# 入門: 並行プログラミングに排他制御を追加 2022/07/03 F# 入門: 並行プログラミングにタスク式を追加 CONTENTS 2022/03/06 はじめに .NET SDK のインストール、hello, F#!!、dotnet fsi、簡単なベンチマーク 2022/03/19 F# Junk Scripts 2022/03/06 参考文献・URL 2022/03/06 権利・免責事項など 2022/03/06 F# の基礎知識 使ってみよう、整数と実数、算術演算子、文字と文字列、比較演算子、論理演算子、条件分岐、変数、タプル、関数、局所変数と大域変数、軽量構文、コメ

    l-_-ll
    l-_-ll 2023/03/20
  • Understanding Monads

  • F# Manual

    F# is similar to the Caml programming language family, and was partially inspired by OCaml. However, the F# compiler implementation is a new re-implementation of a Caml-style language, and some relatively minor differences in the implemented languages exist, much as relatively minor differences exist between "Caml Light" and "OCaml". One of the explicit aims of F# is to make it feasible to cross-c

  • F# vs OCaml part 1: syntax and types

    l-_-ll
    l-_-ll 2017/05/19
  • 今、F# で関数型プログラミングをはじめるなら - 技術memo

    F#をはじめてみたい人向け、2015年初頭現在の言語関連情報への参照をまとめてみます。 おおむね日語です。 オンラインドキュメント F# 言語リファレンス 困ったときのMS公式。よく参照しています。 いきなり全部読もうとするとかなりヘビーなので、他の記事や書籍と合わせて徐々に読むのもいいと思います。 F# コア ライブラリ リファレンス Microsoft.FSharp.Collections名前空間以下、Array/List/Seqあたりはよく使う割にすぐ忘れるので、特に参照します。 入門系Webサイト・記事 F#で初めての関数型プログラミング - @IT bleisさんによる2012年の記事です。 F#の特徴を掴むにはちょうどよく、分量もさほど多くないので、ひとまず一通り眺めておくと良いと思います。 F#入門 よくまとまっている入門サイトです。 多少情報が古いところもありますが、現在

    今、F# で関数型プログラミングをはじめるなら - 技術memo
  • F#で初めての関数型プログラミング(2/3) - @IT

    ■関数型プログラミングの基礎 関数型言語でどのようにプログラムを書いていくのかを見ていこう。 ●不変な値 関数型言語では極力、「状態」というものを避ける傾向にある。例えば変数が状態を持ってしまうと、その変数を参照する箇所で「この変数の今の値は何だろう?」と注意しなければ、簡単にバグを埋め込んでしまう。だが、「状態を持たずに、どうやってプログラムを書くんだ!」と思う人も多いだろう。 状態を持たないプログラムに対する抵抗感を減らすために、.NETの文字列について考えてみよう。 .NETでは、Stringクラス(System名前空間)はインスタンスを作るときに値は確定しており、以後、そのインスタンスの値を変更することはできない(※なお、Stringインスタンスに対して文字列結合などの操作をした場合は、新しい別のStringインスタンスが返されている)。つまり、Stringクラスは状態を持っていな

  • F#言語の基礎文法(1/2) - @IT

    前回は、F#の概要や、関数型プログラミングの基礎、F#でよく使われるデータ構造のリストとタプルを説明した。今回後編では、F#でプログラムを書くに当たって必要最低限の文法を紹介していく。 ■主要な文法 ●if式 F#で条件による分岐を行うためには、if式を使用する。

  • F#で初めての関数型プログラミング(1/3) - @IT

    ■F#とは F#は、マイクロソフト社製のプログラミング言語で、Visual Studio 2010から標準搭載されている。まずは、F#がどのような言語なのかを見てみよう。 ●マルチパラダイム言語「F#」 F#は複数のパラダイムをサポートするマルチパラダイム言語だ。F#がサポートするパラダイムには、 手続き型 関数型 オブジェクト指向プログラミング などがある。 マルチパラダイム言語であるため、C#やVB(Visual Basic)といった従来の.NET言語を置き換える形でF#を使うこともできる。しかし、記事ではF#のメインとなるパラダイムである「関数型」にフォーカスを当てて紹介していく。 ●関数型言語「F#」 F#は、静的型付けの関数型言語である「OCaml」に強い影響を受けている。そのため、F#の主となるパラダイムは関数型プログラミングになる。 さて、関数型言語とは何だろうか? この問

  • 1