如何将 Haskell 转换为 F#?

2024-04-04

我正在尝试通过翻译我很久以前编写的一些 Haskell 代码来学习 F#,但我陷入了困境!

percent       :: Int -> Int -> Float
percent a b    = (fromInt a / fromInt b) * 100

freqs         :: String -> [Float]
freqs ws       = [percent (count x ws) (lowers ws) | x <- ['a' .. 'z']]

我已经做到了:

let percent a b = (float a / float b) * 100.

虽然我不喜欢必须拥有 . 100之后。

我正在执行的操作的名称是什么freqs,以及如何将其转换为 F#?

Edit: count and lowers are Char -> String -> Int and String -> Int分别,我已经翻译了这些。


这是一个列表理解,在 F# 中它看起来像下面的最后两行:

// stub out since don't know the implementation
let count (c:char) (s:string) = 4
let lowers (s:string) = 10
// your code
let percent a b = (float a / float b) * 100.
let freq ws = [for x in ['a'..'z'] do 
                   yield percent (count x ws) (lowers ws)]

更一般地说,我认为 Haskell 列表推导具有下面示例建议的形式,并显示了相应的 F#。

// Haskell
// [e(x,y) | x <- l1, y <- l2, pred(x,y)]
// F#
[for x in l1 do
    for y in l2 do
        if pred(x,y) then
            yield e(x,y)]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Haskell 转换为 F#? 的相关文章

  • F# 正确使用序列缓存

    我正在尝试将 Seq cache 与我制作的函数一起使用 该函数返回最多为 N 的素数序列 不包括数字 1 我无法弄清楚如何将缓存的序列保留在范围内 但仍然使用它在我的定义中 let rec primesNot1 n 2 n gt Seq
  • 从 C# 调用高阶 F# 函数

    给定 F 高阶函数 在参数中采用函数 let ApplyOn2 f int gt int f 2 和 C 函数 public static int Increment int a return a 我怎么打电话ApplyOn2 with I
  • 纯函数怎么能做IO呢?

    我最近了解到莫纳德随机数 http hackage haskell org package MonadRandom 0 1 13 docs Control Monad Random Class html t 3aMonadRandom图书馆
  • Haskell - 用防护罩替换外壳

    我想知道在这部分代码中是否可以用守卫替换 case 语句 firstFunction String gt Maybe MyType secondFunction MyType gt Integer myFunction String gt
  • SQL:将一个表中的所有记录插入到另一表中,而不指定列

    我想将备份表 foo bk 中的所有记录插入到 foot 表中 而不指定特定的列 如果我尝试这个查询 INSERT INTO foo SELECT FROM foo bk 我会收到错误 插入错误 列名称或提供的值的数量与表定义不匹配 是否可
  • 将属性应用于返回值 - 在 F# 中

    在 C 中 可以将属性应用于方法的返回 return DynamicAttribute public object Xyz return new ExpandoObject 这在 F 中可能吗 背景 我想要一个用 F 编写的库的方法 该方法
  • F# 和模糊逻辑

    我知道这可能听起来很奇怪 但我想知道 Microsoft Visual F 正在进入的这个新世界中的一件事 这种语言有很多应用 我要学习 关于解析 函数式编程 结构化编程 但是人工智能呢 模糊逻辑有什么应用吗 F 是一种适合模糊逻辑应用程序
  • 使用 FoldLine 解析多个块

    对于这个简化的问题 我试图解析一个如下所示的输入 foo bar baz quux woo hoo xyzzy glulx into foo bar baz quux woo hoo xyzzy glulx 我尝试过的代码如下 import
  • 在 Yesod 生态系统中,对某些文本进行 urlencode 的最佳方式是什么?

    我想对一些文本进行 url 编码 例如 用 20 替换每个空格等 我找到了 HTTP Network HTTP Base urlEncode 并且可以使用它 但我想知道是否还有其他通常在 Yesod 生态系统中使用的东西 不幸的是 由于 U
  • 标准的能力

    我发现了一些使用标准的旧例子here http www serpentine com blog 2009 09 29 criterion a new benchmarking library for haskell 看起来好像早在 2009
  • 如何使用 FLinq 在 F# 中进行外连接?

    问题几乎说明了一切 我有一个如下形式的大 flinq 查询 for alias1 in table1 do for alias2 in table2 do if alias1 Id alias2 foreignId 使用这种形式 如何在这两
  • 什么时候需要“typename”关键字? [复制]

    这个问题在这里已经有答案了 可能的重复 正式来说 typename 是做什么用的 https stackoverflow com questions 1600936 officially what is typename for 我必须在哪
  • Haskell 中的尾递归字符串分割

    我正在考虑分割字符串的问题s在一个字符处c 这表示为 break c s 其中 Haskell 库定义break c 足够接近 br br s h t if c h then s else let h t br t in h h t 假设我
  • clojure 要求语法原理

    我很难理解 因此记住 此处描述的 clojure require 语法 http clojuredocs org clojure core 1 3 0 clojure core require http clojuredocs org cl
  • JQuery .hasClass 用于 if 语句中的多个值

    我有一个简单的 if 语句 if html hasClass m320 do stuff 这按预期工作 但是 我想添加更多的类if statement检查是否存在任何类标签 我需要它 所以它不是全部 而只是至少一个类的存在 但它可以更多 我
  • Haskell - lambda 表达式

    我试图了解什么是有用的以及如何在 Haskell 中实际使用 lambda 表达式 我不太明白使用 lambda 表达式相对于定义函数的约定方式有何优势 例如 我通常会执行以下操作 let add x y x y 我可以简单地打电话 add
  • 在 F# 类型提供程序中发出生成的类型

    我创建了一个简单的生成类型提供程序 它采用重新组织类型的程序集的路径 将它们置于类型提供程序命名空间下 如果您愿意 可以说是内部化 相关代码的链接在这里https github com colinbull Playground https
  • “不等于”的 F# 语法是什么?

    在 C 代码中 它会是这样的 if c 0 some code 那么在 F 中呢 From MSDN 有关 F 算术运算符的页面 http msdn microsoft com en us library dd469493 aspx 看起来
  • Python问题:打开和关闭文件返回语法错误

    大家好 我发现了这个有用的 python 脚本 它允许我从网站获取一些天气数据 我将创建一个文件和其中的数据集 有些东西不起作用 它返回此错误 File
  • WHERE NOT EXIST 附近的语法错误

    我在堆栈中搜索 但没有一个达到最终答案 我的查询是这样的 INSERT INTO user username frequence autoSend VALUES feri2 3 1 WHERE NOT EXISTS SELECT FROM

随机推荐

  • 我正在尝试获取 Apple Music API 的用户令牌,我已经从 python 终端命令生成了有效的开发人员令牌

    我正在我的 IOS 应用程序中第一次使用 Apple Music api 我已经在 python 命令的帮助下生成了开发者令牌 每次请求用户令牌时 我都会收到错误 请求用户令牌时发生错误 操作无法完成 SKErrorDomain 错误 7
  • 检查 arraytype 列是否包含 null

    我有一个数据框 其中有一列可以包含整数值的数组类型 如果没有值 它将只包含一个 并且它将是空值 重要的 注意该列不会为空 而是一个具有单个值的数组 无效的 gt val df DataFrame Seq foo Seq Some 2 Som
  • 在 TFS API 中将测试用例添加到 ITestSuiteBase

    我正在使用 TFS API 并遇到了 ITestSuiteBase 和 IRequirementTestSuite 的问题 我设法在 IStaticTestSuite 中轻松创建一个新的测试用例 IStaticTestSuite worki
  • 自动同步 Visual Studio 的类视图

    是否可以让 Visual Studio 的 类视图 窗格 在 视图 gt 类视图 下可用 自动同步到当前符号 基本上只要当前符号发生变化就会执行 View SynchronizeClassView See here https stacko
  • 其元数据的二进制版本是1.7.1,预期版本是1.5.1

    C Users khare gradle caches modules 2 files 2 1 org jetbrains kotlin kotlin stdlib common 1 7 0 51736992f422993a1e741051
  • KTable 应该发出的事件

    我正在尝试测试一个拓扑 该拓扑作为最后一个节点 具有 KTable 我的测试是使用成熟的 Kafka 集群 通过 confluence 的 Docker 镜像 所以我not使用TopologyTestDriver 我的拓扑有键值类型的输入S
  • 自定义设计signed_up_but_unconfirmed消息

    实际上我想自定义signed up but unconfirmed消息该消息是 A message with a confirmation link has been sent to your email address Please fo
  • 如何检查SuperTab和jedi-vim是否激活?

    正如标题所述 如何检查插件是否已加载 当我击中时tab 对于 SuperTab 我得到的只是插入到我的文件中的普通字符 tab 当我点击ctrl 空格键我只是被抛出插入模式 与点击相同的行为ESC The scriptnames命令列出所有
  • 办公文档设置

    我目前正在存储一个键值对Office context documents settings使用以下函数 Office context document settings set name value 存储键值对后 我将重新启动加载项并尝试使
  • 无法将 SQL 查询的结果传递给 JAVA 中的方法

    这是我第一次使用 Java 我很困惑 我创建了这个方法 List
  • 即使使用文档中的示例,也无法模拟打开

    我直接从 Python 复制并粘贴了以下代码模拟文档 https docs python org 3 library unittest mock html mock open from unittest mock import patch
  • 无法安装 MySQL-python

    好的 我最近从 Ubuntu 10 04 升级到 12 04 只会面临很多问题 我是这方面的新手 所以你可能需要更详细地或一步一步地告诉我 我有一个 django 项目运行完美 但现在它给了我这个错误 File usr local lib
  • 在 Fabric.js 中控制 z-index

    在fabricjs中 我想创建一个场景 其中鼠标下方的对象在z index中上升到场景的顶部 然后一旦鼠标离开该对象 它就会返回到它来自的z index 无法设置 object zindex 这很好 相反 我使用一个占位符对象 将其放入旧位
  • 控制加速度直到到达某个位置的算法

    我有一个可以移动的点 在一维 并且我需要它平滑地移动 所以我认为它的速度必须是一个连续函数 我需要控制加速度 然后计算它的速度和位置 该算法对我来说似乎并不明显 但我想这一定是一个常见问题 我只是找不到解决方案 Notes 对象在移动时的最
  • Python - 将 set-cookies 响应转换为 cookie 字典

    如何转换response set cookie 输出字符串来自httplib2回应像 cookie1 xxxyyyzzz Path Expires Wed 03 Feb 2015 08 03 12 GMT Secure HttpOnly c
  • GLUT 退出重新定义错误

    在我的简单 OpenGL 程序中 我收到以下有关退出重新定义的错误 1 gt c program files microsoft visual studio 8 vc include stdlib h 406 error C2381 exi
  • Android Studio 3 库模块和功能模块的区别

    Android Studio 3 中至少有两种新的模块类型 首先是Instant app module第二个是feature module With Instant App module这是很明显的但是feature module从我的角度
  • arrayWillChange 中“无法调用未定义的‘销毁’方法”

    我有一个非常标准的数组 模板关系设置 但是当我将一个新项目推入数组时 我得到了上面提到的内容Cannot call method destroy of undefined错误在arrayWillChangeEmber源码的方法 for id
  • 将格式化日期转换回unix

    我将使用哪个函数将自定义格式的日期转换回 Unix 纪元时间 例如 Ymd gt U 我在看date U strtotime 20140525 但我不确定如何适应原始格式Ymd 该函数如何知道输入格式是 YYYYMMDD 因为它看起来有效
  • 如何将 Haskell 转换为 F#?

    我正在尝试通过翻译我很久以前编写的一些 Haskell 代码来学习 F 但我陷入了困境 percent Int gt Int gt Float percent a b fromInt a fromInt b 100 freqs String