Basics of F#

Priskribo de la ĉi-paĝa enhavo

Konverto de malnovaj BASIC-programoj al F# por lerni la fundamentojn de ĉi-tiu lingvo.

Etikedoj:

3D Plot

// 3D Plot

// Original version in BASIC, "3D Plot":
//   Creative Computing (Morristown, New Jersey, USA), ca. 1980.

// This version in F# 5.0:
//   Copyright (c) 2024, Marcos Cruz (programandala.net)
//   SPDX-License-Identifier: Fair
//
// Written on 2024-12-20.
//
// Last modified: 20241231T1245+0100.

open System

let PrintCredits() =
  printfn "3D Plot\n"
  printfn "Original version in BASIC:"
  printfn "    Creative computing (Morristown, New Jersey, USA), ca. 1980.\n"
  printfn "This version in F# 5.0:"
  printfn "    Copyright (c) 2024, Marcos Cruz (programandala.net)"
  printfn "    SPDX-License-Identifier: Fair\n"
  printf "Press any key to start. "
  Console.ReadKey() |> ignore

let A z =
  30.0 * Math.Exp(-z * z / 100.0)

let Draw() =

  let WIDTH = 56
  let SPACE = ' '
  let DOT = '*'

  let mutable l = 0
  let mutable z = 0
  let mutable y = 0
  let mutable y1 = 0
  let mutable line : char array = Array.zeroCreate WIDTH
  let mutable output = new String(line)

  let mutable x = -30.0

  while x <= 30.0 do

    for i=0 to WIDTH-1 do
      line.[i] <- SPACE

    l <- 0
    y1 <- 5 * int (Math.Sqrt(900.0 - x * x) / 5.0)

    y <- y1

    while y >= -y1 do
      z <- int (25.0 + A(Math.Sqrt(x * x + double (y * y))) - 0.7 * double y)
      if z > l then
        l <- z
        line.[z] <- DOT
      y <- y + -5

    let output = String(line)
    printfn "%s" output

    x <- x + 1.5

[<EntryPoint>]
let main argv =
  Console.Clear()
  PrintCredits()
  Console.Clear()
  Draw()
  0 // integer exit code

// vim: filetype=fsharp

Diamond

// Diamond

// Original version in BASIC:
//   Example included in Vintage BASIC 1.0.3.
//   http://www.vintage-basic.net

// This version in F#:
//   Copyright (c) 2024, Marcos Cruz (programandala.net)
//   SPDX-License-Identifier: Fair
//
// Written on 2024-12-30.
//
// Last modified 20241230T1639+0100.

[<EntryPoint>]
let main argv =
  let LINES = 17
  let mutable i = 1
  let mutable j = 1
  while i <= LINES / 2 + 1 do
    j <- 1
    while j <= (LINES + 1) / 2 - i + 1 do
      printf " "
      j <- j + 1
    j <- 1
    while j <= i * 2 - 1 do
      printf "*"
      j <- j + 1
    printfn ""
    i <- i + 1
  i <- 1
  while i <= LINES / 2 do
    j <- 1
    while j <= i + 1 do
      printf " "
      j <- j + 1
    j <- 1
    while j <= ((LINES + 1) / 2 - i) * 2 - 1 do
      printf "*"
      j <- j + 1
    printfn ""
    i <- i + 1
  0 // integer exit code

// vim: filetype=fsharp

Rilataj paĝoj

Basics off
Metaprojekto pri la projektoj «Basics of…».
Basics of 8th
Konverto de malnovaj BASIC-programoj al 8th por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Ada
Konverto de malnovaj BASIC-programoj al Ada por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Arturo
Konverto de malnovaj BASIC-programoj al Arturo por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of C#
Konverto de malnovaj BASIC-programoj al C# por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of C3
Konverto de malnovaj BASIC-programoj al C3 por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Chapel
Konverto de malnovaj BASIC-programoj al Chapel por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Clojure
Konverto de malnovaj BASIC-programoj al Clojure por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Crystal
Konverto de malnovaj BASIC-programoj al Crystal por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of D
Konverto de malnovaj BASIC-programoj al D por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Elixir
Konverto de malnovaj BASIC-programoj al Elixir por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Factor
Konverto de malnovaj BASIC-programoj al Factor por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of FreeBASIC
Konverto de malnovaj BASIC-programoj al FreeBASIC por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Gleam
Konverto de malnovaj BASIC-programoj al Gleam por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Go
Konverto de malnovaj BASIC-programoj al Go por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Hare
Konverto de malnovaj BASIC-programoj al Hare por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Haxe
Konverto de malnovaj BASIC-programoj al Haxe por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Icon
Konverto de malnovaj BASIC-programoj al Icon por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Io
Konverto de malnovaj BASIC-programoj al Io por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Janet
Konverto de malnovaj BASIC-programoj al Janet por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Julia
Konverto de malnovaj BASIC-programoj al Julia por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Kotlin
Konverto de malnovaj BASIC-programoj al Kotlin por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Lobster
Konverto de malnovaj BASIC-programoj al Lobster por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Lua
Konverto de malnovaj BASIC-programoj al Lua por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Nature
Konverto de malnovaj BASIC-programoj al Nature por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Neat
Konverto de malnovaj BASIC-programoj al Neat por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Neko
Konverto de malnovaj BASIC-programoj al Neko por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Nelua
Konverto de malnovaj BASIC-programoj al Nelua por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Nim
Konverto de malnovaj BASIC-programoj al Nim por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Nit
Konverto de malnovaj BASIC-programoj al Nit por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Oberon-07
Konverto de malnovaj BASIC-programoj al Oberon-07 por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of OCaml
Konverto de malnovaj BASIC-programoj al OCaml por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Odin
Konverto de malnovaj BASIC-programoj al Odin por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Pike
Konverto de malnovaj BASIC-programoj al Pike por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Pony
Konverto de malnovaj BASIC-programoj al Pony por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Python
Konverto de malnovaj BASIC-programoj al Python por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Racket
Konverto de malnovaj BASIC-programoj al Racket por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Raku
Konverto de malnovaj BASIC-programoj al Raku por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Retro
Konverto de malnovaj BASIC-programoj al Retro por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Rexx
Konverto de malnovaj BASIC-programoj al Rexx por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Ring
Konverto de malnovaj BASIC-programoj al Ring por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Rust
Konverto de malnovaj BASIC-programoj al Rust por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Scala
Konverto de malnovaj BASIC-programoj al Scala por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Scheme
Konverto de malnovaj BASIC-programoj al Scheme por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Styx
Konverto de malnovaj BASIC-programoj al Styx por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Swift
Konverto de malnovaj BASIC-programoj al Swift por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of V
Konverto de malnovaj BASIC-programoj al V por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Vala
Konverto de malnovaj BASIC-programoj al Vala por lerni la fundamentojn de ĉi-tiu lingvo.
Basics of Zig
Konverto de malnovaj BASIC-programoj al Zig por lerni la fundamentojn de ĉi-tiu lingvo.

Eksteraj rilataj ligiloj