Aracılığıyla paylaş


Array.tryPick<'T,'U> İşlevi (F#)

Belirli bir işlev nerede işlevini verir ilk sonucu döndürerek, art arda öğelerine uygulanan Some. İşlev oluşmazsa Some için herhangi bir öğe, daha sonra None döndürülür.

Ad alanı/modül yolu: Microsoft.FSharp.Collections.Array

Derleme: FSharp.Core (FSharp.Core.dll),

// Signature:
Array.tryPick : ('T -> 'U option) -> 'T [] -> 'U option

// Usage:
Array.tryPick chooser array

Parametreler

  • chooser
    Türü:'T -> 'U option

    Dizi öğelerini seçeneklere dönüştüren işlev.

  • array
    Type: 'T[]

    Girdi dizisi.

Dönüş Değeri

Bir seçenek değeri olan ilk dönüştürülmüş öğe Some, ya da None işlevi oluşmazsa Some herhangi bir öğe için.

Notlar

Bu işlev adlı TryPick kodları derlenmiş derlemeleri. İşlev yansıtma veya F# dışındaki bir dilde erişiyorsanız, bu adı kullanın.

Örnek

Aşağıdaki örnek kullanımını göstermektedir Array.tryPick bir koşulu karşılayan bir öğe bulmaya ve aynı zamanda bu öğe hakkında bazı ek veriler case karekökünü ve küp kökünü dönmek için.

let findPerfectSquareAndCube array1 =
    let delta = 1.0e-10
    let isPerfectSquare (x:int) =
        let y = sqrt (float x)
        abs(y - round y) < delta
    let isPerfectCube (x:int) =
        let y = System.Math.Pow(float x, 1.0/3.0)
        abs(y - round y) < delta
    // intFunction : (float -> float) -> int -> int
    // Allows the use of a floating point function with integers.
    let intFunction function1 number = int (round (function1 (float number)))
    let cubeRoot x = System.Math.Pow(x, 1.0/3.0)
    // testElement: int -> (int * int * int) option
    // Test an element to see whether it is a perfect square and a perfect
    // cube, and, if so, return the element, square root, and cube root
    // as an option value. Otherwise, return None.
    let testElement elem = 
        if isPerfectSquare elem && isPerfectCube elem then
            Some(elem, intFunction sqrt elem, intFunction cubeRoot elem)
        else None
    match Array.tryPick testElement array1 with
    | Some (n, sqrt, cuberoot) -> printfn "Found an element %d with square root %d and cube root %d." n sqrt cuberoot
    | None -> printfn "Did not find an element that is both a perfect square and a perfect cube."

findPerfectSquareAndCube [| 1 .. 10 |]
findPerfectSquareAndCube [| 2 .. 100 |]
findPerfectSquareAndCube [| 100 .. 1000 |]
findPerfectSquareAndCube [| 1000 .. 10000 |]
findPerfectSquareAndCube [| 2 .. 50 |]
  
  
  
  
  

Platformlar

Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2

Sürüm Bilgisi

F# Çekirdek Kitaplığı sürümleri

Desteklenen: 2.0, 4.0, Portable

Ayrıca bkz.

Başvuru

Collections.Array Modülü (F#)

Microsoft.FSharp.Collections İsim Uzayı (F#)