- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Fable REPL 中写了下面的代码:
open Fable.Core
let inline sqr x = x * x
// Filters out `points` that are more than `radius` away
let inRadius radius points =
points
|> List.filter (fun (x, y) -> sqr x + sqr y <= sqr radius)
输出的 JavaScript 是:
import { filter } from "fable-library/List.js";
export function inRadius(radius, xs) {
return filter(function predicate(tupledArg) {
return tupledArg[0] * tupledArg[0] + tupledArg[1] * tupledArg[1] <= radius * radius;
}, xs);
}
更优化的 JavaScript 是:
import { filter } from "fable-library/List.js";
export function inRadius(radius, xs) {
const radiusSquared = radius * radius;
return filter(function predicate(tupledArg) {
return tupledArg[0] * tupledArg[0] + tupledArg[1] * tupledArg[1] <= radiusSquared;
}, xs);
}
(这只是可能应用的优化的一个示例,还有更多可能性)
在 JavaScript 中,由于缺少类型,很难安全地进行这种优化。但是,在原始 F# 代码中,我们知道 radius
的类型,因此我们可以安全地进行此优化。对我来说,这似乎是 Fable 相对于 JavaScript 的一大优势。
但是,此类优化实际上需要在某处实现。
最佳答案
我希望 Fable 或任何其他转译器能够保留代码的结构。因此,您可以优化 F# 代码以仅计算一次 radius^2。
open Fable.Core
let inline sqr x = x * x
// Filters out `points` that are more than `radius` away
let inRadius radius =
let radiusSqr = sqr radius
List.filter (fun (x, y) -> sqr x + sqr y <= radiusSqr)
关于f# - Fable 中是否有任何优化 channel 可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59673552/
紧随my previous question我在“Elm in Action”(并尝试移植到 Fable-Elmish)中处理的示例具有来自自定义元素的自定义事件。在 html 文件中,我有以下内容:
我有一个安全堆栈应用程序。我需要使用户能够上传和下载文件。 通过使用上传作品 Browser.Dom.FileReader.Create() 有没有相应的方式让用户下载文件? This answer提
我正在使用 SAFE 堆栈的 Elmish.Bridge 风格。 在 View 的顶层,我创建一个如下输入字段: Input.input [ Input.Value(model.FieldValue)
我已经使用 dotnet new SAFE 命令设置了一个标准 SAFE 应用程序,生成了两个服务器和客户端项目(以及共享文件夹)。 Client 项目具有包含 View 函数和引导代码的 Clien
我尝试使用 2 个参数调用 Redux.createStore,以下代码简化了签名,但我无法让 FSharp 理解我想要的内容: [] module redux = let createSto
我可以将字符串保存到本地浏览器存储 Browser.localStorage.setItem(key, str) 但是当我尝试对一个受歧视的联合进行字符串化时(例如,通过在其上调用 string),它
我想使用 Fable.JsonConverter。 我的测试代码(几乎复制 this)FableJson.fs在下面, module FableJson open Newtonsoft.Json //
我看过 simple ways使用 HTML5 File API 从 JavaScript 中输入的文件中读取内容。 这是我的 view 方法,在一个小型 fable-arch 应用程序中: let
我是 F# 和 Fable 的新手,我正在尝试从 Fable 的编译代码创建一个 Mongodb 集合。 如何在 F# 中表达此代码以使用 Fable 进行编译? var MongoClient =
这是一个客户端 Fable.Remoting 示例,用于打印异步函数的结果。 // Client code (Compiled to Javascript using Fable) /
我在 Fable REPL 中写了下面的代码: open Fable.Core let inline sqr x = x * x // Filters out `points` that are mo
我想将文件上传到我的 Fable-Elmish, end 以便我可以将其发送到服务器进行处理。但是,我找不到任何文档/示例来涵盖这一点。这是我的更新功能: let update msg model :
我正在尝试使用 F# 开发一个 chrome 扩展,发现在 https://fsharp.org/use/web-apps/ 中有一些框架:fable、websharper、borelo 和 SAFE
我需要使用带有 elmish 调度的 Fable-React 有状态组件。我不知道如何创建它。 我正在使用这个项目模板:https://github.com/fable-elmish/template
我正在尝试使用 Fable 编写一个简单的 React 组件。它应该显示一个带有 + 的简单计数器和 -纽扣。也需要留言string通过 Prop 。 出乎意料的是代码可以编译,但会引发运行时错误:
我想在下拉列表中有一个不是 optional 之一的默认值(不是:DefaultValue“2”)。它应该类似于以下内容,但不适用于输入字段。 Input.Placeholder "Your name
我想预测在服务时间内进入商店的顾客数量。我有每小时的数据 周一至周五 8:00 至 18:00 因此,我认为我的时间序列实际上是有规律的,但在某种意义上是非典型的,因为我每天 10 小时和每周 5 天
我正在尝试使用 NPM 包 normalize-wheel在一个寓言项目中。 我已经确认包已经下载到node-modules文件夹。 符合documentation和 this article我正在使
我正在尝试读取寓言 elmish 中的 Browser.Blob 对象 - 我可以在 javascript 中看到它是这样完成的,但我不确定如何处理 FileReader onload 事件。 var
我正在使用 fable 和 fabletools 包进行一些时间序列预测分析,我有兴趣比较单个模型和混合模型(包括我正在使用的各个模型)。 这是一些带有模拟数据框的示例代码:- library(fab
我是一名优秀的程序员,十分优秀!