Лучший способ реализовать очень простую функцию F # - PullRequest
0 голосов
/ 02 апреля 2020

Я очень плохо знаком с F #, и по функциональному программированию я начал учиться сегодня! Это лучший способ реализовать функцию, которая возвращает, если строка имеет ди git?

open System;

let stringHasDigit (str: String) = 
    not (String.forall(fun c -> (Char.IsDigit(c) = false)) str)

printfn "%b" (stringHasDigit "This string has 1 digits")

Ответы [ 2 ]

1 голос
/ 02 апреля 2020

Ищите функции в String, прежде чем искать в Seq. Они, как правило, быстрее. Это в два раза быстрее, чем при использовании Seq.exists

let stringHasDigit (s: string) =
    String.exists Char.IsDigit s

Кстати, вам не нужно ставить точку с запятой в конце оператора open.

0 голосов
/ 02 апреля 2020

SInce string - это последовательность Char с, можно использовать функции из модуля Seq:

let hasDigits (s: string) =
    s |> Seq.exists Char.IsDigit
...