- easy Monad application, ordering, and usage
- easy function currying (front,back, whatever)
- static typing
- easy and readable scoping (.operators, pointer operators)?
- inline lambdas identical to function declarations
- emphasis on pure function usage and visibility (make side-effects like exceptions stick out like a sore thumb)
- first class macros based on language AST rather than text (T4/TT like)(the main issue with C macros)
- lowest possible interop cost to C (possible inline C usage to prep binding? not ideal and not preferable)
- easy pooling
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Credit to lionliam96 for initial port | |
// t- Current Time | |
// b- start value | |
// c- change in value | |
// d- duration | |
module EasingFunctions | |
open System | |
let inline private two() = LanguagePrimitives.GenericOne + LanguagePrimitives.GenericOne |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Credit to lionliam96 for initial port | |
// t- Current Time | |
// b- start value | |
// c- change in value | |
// d- duration | |
module EasingFunctions | |
open System | |
(*---------------------------- LINEAR ---------------------------*) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//It all depends on where i call what the return shoud be... | |
// unit would be easiest with preapplied dispatcher | |
type Disp= unit->unit | |
//type Disp= unit->msg | |
type Event(dispatch:Disp, elapsedTime: int64 )= | |
member this.Msg = dispatch | |
member this.Time = elapsedTime | |
member this.Equals (obj) = false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
open System | |
type Resource = | |
|Texture of string | |
|Sound of string | |
|Model of string | |
|Data of string * System.Type | |
|Pipeline of Veldrid.Pipeline | |
module Draw3D = |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// a cheesy workaround to pass the resulting view as a message to a view program, then vice versa | |
// call this last because it starts 2 listener threads. | |
let WithViewSub | |
(viewToVMsg) | |
(viewToPMsg) | |
vargs | |
(vprog :Program<'vinit,'vstate,'vmsg,'vview>) | |
(prog :Program<'init,'state,'msg,'view>) | |
= | |
let vmsgagent = MailboxProcessor.Start(fun inbox -> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module ElmEye | |
open Veldrid | |
open Veldrid.StartupUtilities | |
let CreateApp windowWidth windowHeight name = | |
let windowCI = WindowCreateInfo( | |
X = 400, | |
Y =400, | |
WindowWidth = windowWidth, | |
WindowHeight = windowHeight, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Triangle Strip (no index, fastest) | |
new VertexPositionTexture(new Vector3(-0.5f, 0.5f, 0.5f), new Vector2(0, 0)), //ftl front top left | |
new VertexPositionTexture(new Vector3( 0.5f, 0.5f, 0.5f), new Vector2(1, 0)), //ftr | |
new VertexPositionTexture(new Vector3(-0.5f, -0.5f, 0.5f), new Vector2(0, 1)), //fbl | |
new VertexPositionTexture(new Vector3( 0.5f, -0.5f, 0.5f), new Vector2(1, 1)), //fbr front bottom right | |
new VertexPositionTexture(new Vector3( 0.5f, -0.5f, -0.5f), new Vector2(1, 0)), //bbr | |
new VertexPositionTexture(new Vector3( 0.5f, 0.5f, 0.5f), new Vector2(0, 1)), //ftr | |
new VertexPositionTexture(new Vector3( 0.5f, 0.5f, -0.5f), new Vector2(0, 0)), //btr | |
new VertexPositionTexture(new Vector3(-0.5f, 0.5f, 0.5f), new Vector2(1, 1)), //ftl | |
new VertexPositionTexture(new Vector3(-0.5f, 0.5f, -0.5f), new Vector2(1, 0)), //btl |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Microsoft.Win32; | |
using System; | |
using System.Collections.Generic; | |
using System.IO; | |
using System.Linq; | |
using System.Runtime.InteropServices; | |
using System.Text; | |
using System.Threading.Tasks; | |
namespace MyWallpaper |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections; | |
using System.Collections.Generic; | |
using System.ComponentModel; | |
using System.Data; | |
using System.IO; | |
using System.Linq; | |
using ClosedXML; | |
namespace CSVToXLSX | |
{ |
NewerOlder