F #에서 NLopt를 온라인으로 사용하는 예제를 찾지 못했습니다. NLoptNet에 제공된 예제를 C#에서 F #으로 변환하려고했습니다. C#에 익숙하지 않고 F #으로 거의 익숙하지 않아서, 나는 그것을 아주 나쁘게 도살 해왔다. 여기 F #에서 NLoptNet 사용
open NLoptNet
open System
let solver = new NLoptSolver(NLoptAlgorithm.LN_COBYLA, uint32(1), 0.001, 100)
solver.SetLowerBounds([|-10.0|])
solver.SetUpperBounds([|100.0|])
let objfunc (variables : float array) =
Math.Pow(variables.[0] - 3.0, 2.0) + 4.0
solver.SetMinObjective(objfunc)
let initial_val = [|2.|]
let finalscore = ref System.Nullable() // ERROR
let result = solver.Optimize(initial_val, finalscore)
오류의 설명입니다 : 여기
내가 지금까지 무엇을 가지고
Successive arguments should be separated by spaces or tupled, and arguments involving function or method applications should be parenthesized
더 구체적으로, 나는 다음과 같은 세 줄을 번역하기 위해 노력하고있어 C#에서 F # :
double? finalScore;
var initialValue = new[] { 2.0 };
var result = solver.Optimize(initialValue, out finalScore);
아이디어가 있으십니까?
내가 의심 '심판이 (선택 System.Nullable())'또는'심판 <| System.Nullable()'귀하의 문제를 해결할 것입니다 –
대단한. 체크 표시를 누를 수 있도록 답변으로 게시 해 주시겠습니까? 고맙습니다! –
ref 셀을 만들지 않고 out 매개 변수를 사용할 수 있는지 궁금합니다. 'final finance, result = solver.Optimize (initial_val)'와 같은 것입니다. – s952163