open System
let repeat action count =
for i in 1..count do
action
let print =
printfn "Test"
repeat print 10
結果“測驗”只列印一次。列印10次應該怎么寫?如果 10 當前未使用,為什么沒有警告?
uj5u.com熱心網友回復:
問題是你定義的不是print函式而是常量值。
函式應該至少接受一個unit引數:
open System
let repeat action count =
for i in 1..count do
action ()
let print () =
printfn "Test"
repeat print 10
在您的原始代碼中,列印的副作用只發生一次,在print.
并且在使用時沒有警告print,但它的值為(),即printfn "test"函式呼叫回傳的值。
uj5u.com熱心網友回復:
let print =
printfn "Test"
這是系結。這意味著變數 print 被分配給printfn "Test". 的執行結果printfnt "Test"是一個單元(),導致以下情況:print等于unit
在您的回圈中,您只需在每次迭代時回傳 unit,而無需實際呼叫任何內容。
要獲得所需的結果,您需要將系結更改為函式:
open System
let repeat action count =
for i in 1..count do
action()
let print() =
printfn "Test"
repeat print 10
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/381824.html
