Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

199
Views
Función que no se llama el número especificado de veces
open System let repeat action count = for i in 1..count do action let print = printfn "Test" repeat print 10

Da como resultado que "Prueba" se imprima solo una vez. ¿Cómo se debe escribir para imprimir 10 veces? Si el 10 no se usa actualmente, ¿por qué no hay advertencias?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

El problema es que no está definiendo print como una función sino como un valor constante.

Las funciones deben tomar al menos un parámetro de unit :

 open System let repeat action count = for i in 1..count do action () let print () = printfn "Test" repeat print 10

En su código original, el efecto secundario de imprimir ocurre solo una vez, en la definición de print .

Y no hay advertencias ya que se usa print , pero su valor es () , que es el valor devuelto por la llamada a la printfn "test" .

over 4 years ago · Santiago Trujillo Report

0

let print = printfn "Test"

Este es un enlace. Significa que la variable print se asigna al resultado de la ejecución de printfn "Test" . El resultado de la ejecución de printfnt "Test" es una unidad () , lo que lleva a la siguiente situación: print es igual a unit

En su ciclo, simplemente devuelve la unidad con cada iteración, sin llamar a nada.

Para obtener los resultados deseados, debe cambiar el enlace a una función:

 open System let repeat action count = for i in 1..count do action() let print() = printfn "Test" repeat print 10
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!