WARNING
Note on FFI Interface Stability The current Foreign Function Interface (FFI) in Lean 4 was primarily designed for internal use within the Lean compiler and runtime. As such, it should be considered unstable. The interface may undergo significant changes, refinements, and extensions in future versions of Lean. Developers using the FFI should be prepared for potential breaking changes and should closely follow Lean's development and release notes for updates on the FFI system.
| function jq() { | |
| if [ -f $1 ]; then | |
| FILE=$1; shift | |
| # Move FILE at the end as expected by native jq | |
| command jq "$@" "$FILE" | |
| else | |
| command jq "$@" | |
| fi | |
| } |
| function jq() { | |
| if [ -f $1 ]; then | |
| FILE=$1; shift | |
| # Move FILE at the end as expected by native jq | |
| command jq "$@" "$FILE" | |
| else | |
| command jq "$@" | |
| fi | |
| } |
| cmake_minimum_required(VERSION 3.7) | |
| project(opencl_cmake VERSION 0.0.1 LANGUAGES CXX) | |
| add_executable(vadd main) | |
| target_compile_features(vadd PRIVATE cxx_auto_type) | |
| find_package(OpenCL REQUIRED) | |
| target_link_libraries(vadd OpenCL::OpenCL) |
UPDATE 2021: I wrote this long before I wrote my book Functional Programming Made Easier: A Step-by-step Guide. For a much more in depth discussion on Monads see Chapter 18.
Initially, Monads are the biggest, scariest thing about Functional Programming and especially Haskell. I've used monads for quite some time now, but I didn't have a very good model for what they really are. I read Philip Wadler's paper Monads for functional programming and I still didnt quite see the pattern.
It wasn't until I read the blog post You Could Have Invented Monads! (And Maybe You Already Have.) that I started to see things more clearly.
This is a distillation of those works and most likely an oversimplification in an attempt to make things easier to understand. Nuance can come later. What we need when first le
A non-exhaustive list of WebGL and WebGPU frameworks and libraries. It is mostly for learning purposes as some of the libraries listed are wip/outdated/not maintained anymore.
| Name | Stars | Last Commit | Description |
|---|---|---|---|
| three.js | ![GitH |
| if (${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "AMD64") | |
| set(GLSL_VALIDATOR "$ENV{VULKAN_SDK}/Bin/glslangValidator.exe") | |
| else() | |
| set(GLSL_VALIDATOR "$ENV{VULKAN_SDK}/Bin32/glslangValidator.exe") | |
| endif() | |
| file(GLOB_RECURSE GLSL_SOURCE_FILES | |
| "shaders/*.frag" | |
| "shaders/*.vert" | |
| ) |
| // Built with IMPACT - impactjs.org | |
| (function (window) { | |
| "use strict"; | |
| Number.prototype.map = function (istart, istop, ostart, ostop) { | |
| return ostart + (ostop - ostart) * ((this - istart) / (istop - istart)); | |
| }; | |
| Number.prototype.limit = function (min, max) { | |
| return Math.min(max, Math.max(min, this)); | |
| }; | |
| Number.prototype.round = function (precision) { |