タグ

programming-languageとfunctional-programmingに関するnabinnoのブックマーク (21)

  • OCaml.jp

    このページは最後に更新されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。 OCaml(オキャムル/オーキャムル)は、INRIA(フランス国立情報学自動制御研究所)で開発されている関数型言語の一種で、最新の言語理論の成果が取り入れられたプログラミング言語です。 型安全な静的型システムを基盤に、バグの少ない高信頼なプログラムが開発できます。 オブジェクト、型推論、代数的データ型、モジュールシステム、多相バリアント、第一級モジュール、GADTといった様々な機能を利用して、より簡潔で整理されたコードが記述できます。 x86, x86-64, ARM, PowerPCなど多数のアーキテクチャのネイティブコードを出力できるコンパイラを持っています。Android や iOS 向けのクロスコンパイルも可能です(Linux 上でのクロスコンパイルは opam-cross-a

  • Welcome to a World of OCaml

    # let square x = x * x val square : int -> int = < fun > # square 3 - : int = 9 # let rec fac x = if x <= 1 then 1 else x * fac (x - 1) val fac : int -> int = < fun > # fac 5 - : int = 120 # square 120 - : int = 14400

    Welcome to a World of OCaml
  • ML (プログラミング言語) - Wikipedia

    ML(えむえる、Meta-Language)は、関数型言語のひとつである。現代風の関数型言語としては歴史が古いほうで、型推論機能などを持つが、デフォルトの評価戦略は遅延評価ではなく先行評価で、書き換えが可能なレコード型を持つなど、いわゆる「純粋関数型」でない特徴や機能を持つ。 自動定理証明系において、証明の道筋を関数として記述するためのメタ言語として生まれたという経緯を持ち(#歴史の節を参照)、名前はそのことに由来する。構文はISWIMの影響を受けている。 MLによってプログラマに知られるようになった機能に、型推論がある。これは、明示的に型の宣言を行わなくても、データの利用のされ方から、引数や関数の返す型を自動的に推論してくれる機能である。これにより、プログラマの負担が著しく軽減される。 標準(ないし一方言)としてStandard ML (SML) があり、その実装には、Standard

  • F# Software Foundation

    F# empowers everyone to write succinct, robust and performant code F# gives you simplicity and succinctness like Python with correctness, robustness and performance beyond C# or Java.

  • OCaml - Wikipedia

    OCaml([oʊˈkæməl] oh-KAM-əl、オーキャムル、オーキャメル)は、フランスの INRIA が開発したプログラミング言語MLの方言とその実装である。MLの各要素に加え、オブジェクト指向的要素の追加が特長である。かつては Objective Caml という名前で、その略として OCaml と広く呼ばれていたが、正式に OCaml に改名された[2]。 もとはCamlという名前の、MLの方言の処理系実装、および言語であった。この名前はcategorical abstract machine languageの頭字語に由来する(en:Categorical abstract machineも参照)。やがて、categorical abstract machineよりも効率の良い抽象機械ベースに書き直され、クラスや継承などクラスベースオブジェクト指向の言語機能が追加され Obj

  • F Sharp - Wikipedia

    2002年からマイクロソフトリサーチのドン・サイム(英語版) (英: Don Syme) ら [2] によってOCamlをベースに開発が始められた。 OCamlから多くの要素を引き継いだ関数型とオブジェクト指向のマルチパラダイムである[3]。型安全であり[3]、型推論の機能をもつ[4]。ただし、オーバーロードをサポートしているため、OCamlのもつ型推論の完全性を失っている。C#やVisual Basic .NETなどの.NET言語と相互運用性があり[5]、.NETクラスライブラリの利用・開発が可能であり[6]、MonoおよびXamarinを利用したAndroidアプリケーション開発もサポートされている[7]。以前はSilverlightを利用したWindows Phone 7のアプリケーション開発もサポートされていた。 F#のFはFunctional programming langua

    F Sharp - Wikipedia
  • Lisp (programming language) - Wikipedia

    Lisp (historically LISP, an abbreviation of "list processing") is a family of programming languages with a long history and a distinctive, fully parenthesized prefix notation.[3] Originally specified in the late 1950s, it is the second-oldest high-level programming language still in common use, after Fortran.[4][5] Lisp has changed since its early days, and many dialects have existed over its hist

    Lisp (programming language) - Wikipedia
  • Welcome to Common-Lisp.net!

    Introduction Welcome to the amazing world of Common Lisp, the programmable programming language. This site is one among many gateways to Common Lisp. Its goal is to provide the Common Lisp community with development resources and to work as a starting point for new programmers. Latest Common-Lisp.net news 2022-02-08All project sites have moved from https://common-lisp.net/project/<project-name> to

  • Haskell Language

    primes = filterPrime [2..] where filterPrime (p:xs) = p : filterPrime [x | x <- xs, x `mod` p /= 0]

  • Idris: A Language for Type-Driven Development

    Idris: A Language for Type-Driven Development Idris is a programming language designed to encourage Type-Driven Development. In type-driven development, types are tools for constructing programs. We treat the type as the plan for a program, and use the compiler and type checker as our assistant, guiding us to a complete program that satisfies the type. The more expressive the type is that we give

  • About - Steel Bank Common Lisp

    Steel Bank Common Lisp (SBCL) is a high performance Common Lisp compiler. It is open source / free software, with a permissive license. In addition to the compiler and runtime system for ANSI Common Lisp, it provides an interactive environment including a debugger, a statistical profiler, a code coverage tool, and many other extensions. SBCL runs on Linux, various BSDs, macOS, Solaris, and Windows

  • クラウド時代に習得すべき言語10選

    Nick Hardiman (Special to TechRepublic) 翻訳校正: 川村インターナショナル 2015-03-20 06:00 コンピュータ言語を1つ挙げろと言われたら、多くの人は広く知られた汎用手続き型言語を選ぶだろう。学校で教わる「C」「Java」「Python」などのはずだ。しかし、いつも名前が挙がるこれらの言語は、コンピュータ言語という氷山の一角でしかない。キーワードと構造を使って情報を伝達するものは言語と言える。ここでは、検討すべき10のクラウド言語を紹介する。 1. SQLデータ言語 誰もが認めるところだが、SQLは何十年にもわたってデータ言語の王者として君臨してきた。非リレーショナルデータベースサーバでさえも、何らかのSQLに対応する。クラウドでも、他のすべてのIT分野と同様、至るところでSQLが使われている。 SQLにまつわるジョークを1つ紹介しよう。

    クラウド時代に習得すべき言語10選
  • イテレータ - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "イテレータ" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2017年9月) イテレータ(英語: iterator)とは、プログラミング言語において配列やそれに類似する集合的データ構造(コレクションあるいはコンテナ)の各要素に対する繰り返し処理の抽象化である。実際のプログラミング言語では、オブジェクトまたは文法などとして現れる。JISでは反復子(はんぷくし)と翻訳されている[1][2]。 ジェネレータ (プログラミング) の記事も参照のこと。

  • アリティ - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "アリティ" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2017年8月) この記事には参考文献や外部リンクの一覧が含まれていますが、脚注によって参照されておらず、情報源が不明瞭です。 脚注を導入して、記事の信頼性向上にご協力ください。(2017年8月) アリティ(英: arity)とは、代数学、論理学、計算機科学などにおいて、関数や演算(算法)が取る引数(オペランド)の個数を意味する用語である[1]。複合語としては、「変数」(例えば、二変数函数、多変数函数)や単に「項」(二項演算、多項関係など)あるいはまた(不定元の数という意味で)

  • Anonymous function - Wikipedia

    In computer programming, an anonymous function (function literal, expression or block) is a function definition that is not bound to an identifier. Anonymous functions are often arguments being passed to higher-order functions or used for constructing the result of a higher-order function that needs to return a function.[1] If the function is only used once, or a limited number of times, an anonym

  • モナド (プログラミング) - Wikipedia

    関数型プログラミングにおいて、モナドはプログラムを構造化するための汎用的な抽象概念である。対応したプログラム言語では、ボイラープレート的なコードでもモナドを使って除去することが可能となる。これはモナドが、特定の形をした計算を表すデータ型と、それに関する生成と合成の2つの手続きを提供することによって実現されている。生成は任意の基型の値をモナドに包んでモナド値を生成する手続きであり、合成はモナド値を返す関数(モナド関数)たちを合成する手続きである。[1] 広い範囲の問題をモナドを使うことで単純化できる。例えば、Maybeモナドを使えば未定義値への対処が簡単になり、Listモナドを使えばリストに入った値を柔軟に扱うことができる。複雑に組み合わさった関数は、モナドを使えば、補助データの管理や制御構造や副作用を除去した簡単なパイプライン構造に置き換えることができる[1][2]。 モナドの概念や用語

  • Clojure - Wikipedia

    Clojure (発音は/'klouʒər/[3], クロージャー)は、関数型プログラミング言語であり、LISP方言の一つである。関数型プログラミングのプログラミングスタイルでのインタラクティブな開発を支援し、マルチスレッドプログラムの開発を容易化する汎用言語である。Clojure言語のプログラムはJava仮想マシンで動作する。.NETで動作するClojureCLRも開発されている。Clojure言語は「データとしてのプログラムコード」 (英語:「code as data」) という思想で設計されており、洗練されたマクロ機構を持つ。 リッチ・ヒッキー (Rich Hickey)がClojure言語を設計した目的は、既存のJavaプラットフォーム上で動作して、並行コンピューティングができる、関数型のLISP系の言語を作ることである。[4][5] Clojure言語が並行コンピューティングを実

    Clojure - Wikipedia
  • Haskell - Wikipedia

    Haskell は高階関数や静的多相型付け、定義可能な演算子、例外処理といった多くの言語で採用されている現代的な機能に加え、パターンマッチングやカリー化、リスト内包表記、ガードといった多くの特徴的な機能を持っている。また、遅延評価や再帰的な関数や代数的データ型もサポートしているほか、独自の概念として圏論のアイデアを利用し参照透過性を壊すことなく副作用のある操作(例えば 代入、入出力、配列など)を実現するモナドを含む。このような機能の組み合わせにより、手続き型プログラミング言語では記述が複雑になるような処理がしばしば簡潔になるばかりではなく、必要に応じて手続き型プログラミングを利用できる。 Haskell は関数型プログラミングの研究対象として人気が高い。あわせて Parallel Haskell と呼ばれるマサチューセッツ工科大学やグラスゴー大学によるものをはじめ、他にも Distribu

    Haskell - Wikipedia
  • LISP - Wikipedia

    LISP(リスプ)は、関数型プログラミング言語である。S式と前置記法などが特徴である。 1958年秋から開発が開始され[1]、1960年3月にLISP Iとしてマニュアルが書かれ[2]、1960年4月に初めて論文が発表された[3]LISPは、現在でも広く使用されている高水準プログラミング言語の中では、FORTRAN、COBOLに次いで3番目に古い[4]。 これまでに多数の方言が存在してきたが、今日広く使われているLISP方言は、Common Lisp、Scheme、Clojureなどである。 元々、LISPは、アロンゾ・チャーチのラムダ計算表記法に影響を受け、コンピュータプログラムのための実用的かつ数学的な表記法として作られた。そして、すぐに人工知能研究に好まれるプログラミング言語になった。最初期のプログラミング言語として、LISPは計算機科学にて、木構造、ガベージコレクション、動的型付け

    LISP - Wikipedia
  • 関数型プログラミング - Wikipedia

    関数型プログラミング(かんすうがたプログラミング、英: functional programming)とは、数学的な意味での関数を主に使うプログラミングのスタイルである[1]。 functional programming は、関数プログラミング(かんすうプログラミング)などと訳されることもある[2]。 関数型プログラミング言語(英: functional programming language)とは、関数型プログラミングを推奨しているプログラミング言語である[1]。略して関数型言語(英: functional language)ともいう[1]。 関数型プログラミングは、関数を主軸にしたプログラミングを行うスタイルである[1]。ここでの関数は、数学的なものを指し、引数の値が定まれば結果も定まるという参照透過性を持つものである[1]。 参照透過性とは、数学的な関数と同じように同じ値を返す式