.Netプログラミング入門
.Netには3つの言語が存在する。それぞれの言語には文化が異なる。
| 言語 | C# | VB.net | F# |
|---|---|---|---|
| 中心的なパラダイム | オブジェクト指向 | 手続き型プログラミング | 関数型プログラミング |
| 思想 | 抽象化指向 | 具体化指向 | 抽象化指向 |
| 名称について | 短くてわかりやすい名前が好まれる | 長い名前が好まれる | 短くてわかりやすい名前が好まれる |
| 重視 | 効率性重視 | 拡張性重視 | できるだけコンパイル時にバグを検出 |
| 型付け | 比較的強い | 比較的弱い | とても強い |
| コードの行数 | スクリプト言語と変わらないくらい | Javaくらい | スクリプト言語と変わらないくらい |
| 似ている言語は | Kotlin,Java,Python等 | かなり独自の特性を持つ言語 | Delphi,Haskell,OCaml,Python(インシデント)等 |
それでは試しに書いてみます。
ex.cs
usingSystem;usingSystem.Linq;namespaceex{classex{intCombi(intF=10,intS=6){if(S==0||S==F)return1;elseif(S==1)returnF;returnCombi(F-1,S-1)+Combi(F-1,S)}staticvoidMain(){Console.WriteLine("Hello World C Sharp");varLs=newList<int>[100];varTxt="";foreach(variinEnumerable.Range(0,Ls.Length-1)){Ls[i]=i;Txt+=(i+1).ToString()+"番目の値は"+Ls[i].ToString()+"です。\n";}Console.WriteLine(Txt+"\n値を2つ入力");vari1=int.Pause(Console.ReadLine());vari2=int.Pause(Console.ReadLine());Console.WriteLine("{0}C{1}の組み合わせは{2}です",i1,i2,Combi(i1,i2));}}}ex.vb
Imports System
Class ex
Private Function Combination(VyVal Optional First As Integer = 10,VyVal Optional Second As Integer = 6) As Integer
If second = 0 OrElse Second = First Then
Return 1
End
ElseIf Second = 1 Then
Return First
End
Else Then
Return Combination(First-1,Second-1)+Combination(First-1,Second)
End Function
Public Function Main() As Integer
Console.WriteLine("Hello World Visual Basic")
Dim Lists As List<Integer> = New List<Integer>[100]
Dim Texts As String = ""
For i = 0 to 99
Lists(i) = i
Text &= (i+1).ToString()&"番目の値は" & i.ToString()& "です。\n"
Next
Console.WriteLine(Texts)
Console.WriteLine("値を2つ入力")
Dim Integer1 As Integer = Integer.Pause(Console.ReadLine())
Dim Integer2 As Integer = Integer.Pause(Console.ReadLine())
Console.WriteLine("{0}C{1}の組み合わせは{2}です",Intrger1,Integer2,Combination(Integer1,Integer2))
Return 0
End Function
End Class
ex.fs
Open System
let Combi F S =
if S = 0 || S = F then 1
else if S = 1 then F
else Combi(F-1,S-1)+Combi(F-1,S)
let TTT k i =
if k.length - i = 0 then (i+1).ToString()+"番目の値は" + k.[i].ToString()+ "です。\n"
else TTT(k i)+ (i+1).ToString()+"番目の値は" + k.[i].ToString()+ "です。\n"
let Num = [Int32.Parse(Console.ReadLine()),Int32.Parse(Console.ReadLine())]
[<EntryPoint>]
let main args =
printfn "Hello World F Sharp"
let Ls = [| for i in 0 .. 100 -> i |]
printfn "%s" TTT(Ls 0)
printfn "2つの数値入力"
Num()
Console.WriteLine("{0}C{1}の組み合わせは{2}です",Num[0],Num[1],Combi(Num[0],Num[1]))
0
まあこんな感じです