玩F#,我試圖以更實用的方式思考代碼。我的大部分工作本質上都是數字化的,所以我正在考慮這種再教育是否有意義。是以一種功能性的方式編寫數字代碼,例如試圖將一個方形釘固定在一個圓孔中,或者僅僅是一個陡峭的學習曲線問題,而不考慮應用程序?功能化數字代碼
例如,讓我們這表明大量的弱法的一個片段:
open System
open System.IO
open System.Windows.Forms
open System.Windows.Forms.DataVisualization
open FSharp.Data
open FSharp.Charting
open FSharp.Core.Operators
open MathNet.Numerics
open MathNet.Numerics.LinearAlgebra
open MathNet.Numerics.Random
open MathNet.Numerics.Distributions
open MathNet.Numerics.Statistics
let T = 1000
let arr1 = Array.init T (fun i -> float i*0.)
for i in 0 .. T-1 do
arr1.[i] <- [|for j in 1..i do yield Exponential.Sample(0.1)|] |> Statistics.Mean
let arr2 = Array.init T (fun i -> float i*0.)
for i in 0 .. T-1 do
arr2.[i] <- arr1.[1 .. i] |> Statistics.Mean
arr2 |> Chart.Line |> Chart.Show
是否有表達上述的簡潔實用的方式?有多少功能範式可以被納入到這樣的工作中?
不確定問題是否爲脫離主題。謝謝。
順便說一句,有科學家的書_F#,儘管有點過時。還有[真實世界函數式編程]摘錄(https://code.msdn.microsoft.com/Chapter-4-Numerical-3df3edee)。也許更近期的書對數學網有更好的解釋。 – s952163