/** * Copyright (c) 2017-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ const React = require("react"); const CompLibrary = require("../../core/CompLibrary.js"); const MarkdownBlock = CompLibrary.MarkdownBlock; /* Used to read markdown */ const Container = CompLibrary.Container; const GridBlock = CompLibrary.GridBlock; const PascalLIGOTab = () => (
// variant defining pseudo multi-entrypoint actions
type action is
| Increment of int
| Decrement of int
function add (const a : int ; const b : int) : int is
block {"{ skip }"} with a + b
function subtract (const a : int ; const b : int) : int is
block {"{ skip }"} with a - b
// real entrypoint that re-routes the flow based on the action
provided
function main (const p : action ; const s : int) : (list(operation)
* int) is
block {"{ skip }"} with ((nil : list(operation)),
case p of
| Increment(n) -> add(s, n)
| Decrement(n) -> subtract(s, n)
end)
type storage = int
(* variant defining pseudo multi-entrypoint actions *)
type action =
| Increment of int
| Decrement of int
let add (a: int) (b: int) : int = a + b
let subtract (a: int) (b: int) : int = a - b
(* real entrypoint that re-routes the flow based on the action
provided *)
let%entry main (p : action) storage =
let storage =
match
p with
| Increment n -> add storage n
| Decrement n -> subtract
storage n
in (([] : operation list), storage)
{siteConfig.taglineSub}
{props.content}
We are not alone in this world -- here're some guys who support us
{user.caption}
)); return (