玩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