プログラミングについてのWiki。

F#数式処理入門

資料

入門用としてC#で学ぶF#入門の資料を使用しました。

板書

hello.fsをfscでコンパイルしてmonoで実行
printfnのテストとnの由来


束縛について(代入とは言わない)


束縛した後のイコールは比較(C言語などの==)になる


数学の座標に似た代入の記法


C言語のfoo(1,2)はF#でfoo 1 2と書くが、foo(1+2)はどちらも同じ意味


foo 1+2は(foo 1)+2と解釈される


数字、文字列、関数など何でも束縛できる


数学の関数 f(x)=5x との比較


C#のラムダ式は x => x * 5 と書く


1+2*3を抽象構文木(AST)に変換


F#でASTを判別共用体で表記


判別共用体のインデントを一行と複数行で対比


継承による多態(内部)と判別共用体の評価関数(外部)の位置の比較


サンプルの流れと構文解析の占める割合(80%)


ASTの評価例


文字列のスライス


BNFにおけるtermの例


expr, term, factorによる計算順の表現


1+2のパース例


Lexerが文字列を区切る


LexerからASTを構築


1+2xのASTを微分


コンパイル(.fs→.exe)とスクリプト(.fsx)の対比

Wiki内検索

Menu

ここは自由に編集できるエリアです。

管理人/副管理人のみ編集できます