F#非常容易上手,我们从完全的新手到不到一周的时间就将代码投入生产.

  1. 杰克·莫特
  2. 奥康纳在线
  3. Case study

作为评估功能性编程作为生产工具的实验,我们为F#网站开发了一个新的多层缓存系统. 因为F#可以很容易地使用现有的C#库,所以我们能够使用流行的软件包(例如StackExchange.Redis和ProtoBuf-Net)迅速进行开发. 在不到一周的时间内,我们在生产中有了一个灵活的缓存系统,其中包括管理页面和性能统计信息跟踪.

我们还发现,可以在现有C#代码中直接使用新的F#模块,并且无需任何特殊配置即可将F#代码部署到Azure应用程序服务中并作为其运行. 将F#添加到代码库中是完全容易的.

我们团队中的开发人员都对F#感兴趣,并渴望了解更多信息. 同样,我们发现在大学招聘活动中,准学生很高兴听到我们在生产中使用功能语言

Web应用程序,缓存,Redis,法律研究,oconnors,azure,asp.net

 

F#代码始终更短,更易于阅读,更易于重构,并且包含的​​bug少得多. 随着我们的数据分析工具的发展……我们已经变得越来越有生产力.

  1. Kaggle
  2. permalink

At Kaggle we initially chose F# for our core data analysis algorithms because of its expressiveness. We’ve been so happy with the choice that we’ve found ourselves moving more and more of our application out of C# and into F#. The F# code is consistently shorter, easier to read, easier to refactor, and, because of the strong typing, contains far fewer bugs.

随着数据分析工具的发展,我们已经看到了特定领域的构造非常自然地出现. 随着我们的代码库变大,我们变得越来越有生产力.

F#面向CLR的事实也很重要-即使我们在C#中已有大量代码库,但开始使用F#是一个容易的决定,因为我们知道我们可以立即使用新模块.

数据科学,机器学习,启动

Contribute testimonials

要添加新的推荐,请登录GitHub, 编辑此页面并发送请求请求. 您也可以通过电子邮件将推荐信发送至fsharp@fsharp.org .

 

F#的使用证明了企业软件中该语言的最佳位置

  1. 西蒙·考辛斯
  2. permalink

我编写了一个应用程序,以平衡电站组合的国家发电计划与能源公司的交易头寸. 客户端和服务器组件使用C#,但是计算引擎使用F#编写.

使用F#来解决此应用程序核心的复杂性,清楚地证明了该语言在企业软件中的一个优势,即对大型数据集进行算法复杂的分析. 我的经历是非常积极的经历.

能源,交易,计算,ETL,提取,转换,负载

 

在瑞士信贷,我们一直在使用F#开发金融产品的定量模型

  1. 霍华德·曼塞尔
  2. 瑞士信贷(撰写本文时)
  3. source: CUFP Workshop, 2008, permalink

建立衍生产品交易的估值模型需要快速发展数学模型,这可以通过组成较低级别的模型组件来实现. 我们发现F#及其相关的工具集提供了独特的功能组合,使其非常适合这种开发. 在本演讲中,我将解释我们如何使用F#,并说明为什么它是一个很好的匹配. 我还将讨论我们所遇到的问题,并概述将来的改进,这些改进将使此类工作受益.

函数式编程的商业用户研讨会的演讲摘要

金融服务,分析,固定收益,衍生工具,财务模型

 

The performance is phenomenal. We can now re-calculate the entire bank portfolio from scratch in less than a second and the response-time for single deal verification calculation is far below 100 milliseconds.

  1. Jan Erik Ekelof硕士
  2. 负责IT架构师并领导开发人员交易对手风险
  3. Handelsbanken
  4. permalink

我最初在2006年至2007年对F#进行了评估,目的是在金融风险中以数学为导向的高性能应用程序. 我于2009年春季完成一项任务,即实施一种新的实时交易对手风险系统,该系统涵盖整个银行中所有可能的当前和未来交易类型. 这项工作仅由三个资源开始,我是架构师和首席开发人员,还有两个同事–一名风险专家和一名高性能开发人员. 我们的初衷是使用C#,但是我对F#进行了快速的概念验证,以实现对现有风险系统的低级TCP / IP通信. 这向我们和我们的管理层表明,由于F#支持多种范例和功能概念以及对多线程的出色支持,因此F#可以极大地提高我们的生产率.

我们的第一批产品正在迅速交付,F#已证明自己是真正的救生员. 我们开始在许多地方使用C#,但是从那以后几乎完全转移到了F#中,因为它具有减少所需代码量的能力以及开发大规模并行计算时的简便性. 性能是惊人的. 现在,我们可以在不到一秒钟的时间内从头开始重新计算整个银行投资组合,单笔交易验证计算的响应时间远远低于100毫秒(最初的要求是200毫秒,以使该应用程序可用于电子市场). 尽管可以从建立计算模型的方式中获得一些收益,但是F#使我们可以用很少的代码并且与原始数学模型和规则有很大的相似性来实现我们的算法和技术(这对于验证非常重要).正确性). 我们还能够使用对异步工作流的支持,以生成简单明了且易于理解的代码,但仍可在需要时并行运行.

本申请包含35至40.000行的F#代码和等量的C#代码. 但是,我们估计F#代码至少包含80%的功能(这真是太神奇了!). 我们的经验告诉我们,仅通过将功能从C#移植到F#(不计算C#代码中的单字符或空行),代码行的数量就以1/2到1/4的比例缩小. 通过重塑,我们将比例增加到了1/5到1/8的面积,其中重塑涉及用功能结构替换面向对象的构造(并实际上删除了可变状态). 上周的一个示例是一个用F#编写的极限利用模块,但是使用了包含+300行代码的面向对象的方法. 我仅通过转换范例就将其重写为70行以下的代码(重写使它更易于理解和验证)!

金融服务,分析,交易对手风险,固定收益,衍生工具,财务模型

 

F#中的函数式编程的优势为我们提供了优于竞争缓慢的竞争对手的巨大优势.

  1. 拜德岩
  2. permalink

At Bayard Rock we work hard every day in the pursuit of new approaches towards anti-money-laundering. Before adopting F# there were often months of turnaround time between development of an idea and actually testing it on real data in our production environment. F#’s succinctness and composability allows us to rapidly iterate on ideas while the type system acts as a safety net. On top of this, it has the advantage of being a first class member of the .NET ecosystem and so integrates seamlessly with our Microsoft stack systems. This means that instead of months we can often see our ideas come to life in just days.

F#中的函数式编程的优势为我们提供了优于竞争缓慢的竞争对手的巨大优势. 在使用F#三年之后,我们的产品在不牺牲稳定性的前提下,每年都在不断提高. 我们的客户常常对我们如何快速适应独特的挑战以及如何比其他人更有效地发现坏人隐藏在其数据中感到惊讶. 他们几乎不知道这很大程度上要归功于我们的秘密武器F#.

金融服务,分析,反洗钱,交易对手风险,机器学习

 

Grange Insurance并行化了其评级引擎,以更好地利用多核服务器硬件

  1. 农庄保险
  2. permalink

近75年以来,格兰奇保险公司已为美国十几个州的保单持有人提供了具有竞争力的产品和服务. 为了维持良好的声誉和声誉,该公司决定增强其评级引擎,这是一种用于评级政策和执行假设模型,影响分析以及其他重要活动的软件工具. 与Sophic Group合作,并使用Microsoft Visual Studio Team System开发环境和F#编程语言,Grange Insurance并行化了其评级引擎,以更好地利用多核服务器硬件,从而获得了显着的性能优势. 现在,过去需要数小时才能完成的流程现在只需几分钟,这使该公司可以缩短数周的上市时间,并使独立代理商更轻松地销售和维修Grange产品.

保险,并行化,金融服务

 

大型保险公司在不到100天的时间内完全没有F#的经验,就完全用F#开发了一个完整的退休金报价计算器.

  1. 大型保险公司
  2. source 1, source 2, permalink

世界上最大的保险公司之一正在生产F#代码,并且正在F#中启动更多项目. 我们目前正在为这家公司(利润25亿英镑)提供咨询服务,该公司已经将部分数字处理和业务逻辑迁移到了F#,并对结果(与Visual C ++ 6相比,速度提高了10倍,代码减少了10倍)非常满意,因此他们提议将1,600,000行代码迁移到F#. 特别是,他们的开发人员发现F#易于学习和使用.

…我的前任在不到100天的时间里完全用F#开发了一个完整的退休金报价计算器(通常计划花300-400个工日),根本没有任何F#经验. 与新的C ++相比,其性能要好10倍,因为新代码避免了不必要的复制,并利用了多核并行性. 我在这里的部分工作是为大约20人提供基础的F#培训,并使一些人达到专家水平.

回答"您能提供证据证明C ++的性能提高10倍吗?". 保险公司的C ++代码是非常低效的Mathematica代码的简单手动翻译,它遭受了几个主要围绕过度复制而引起的病理性能问题. F#重写没有这些问题. 客户端验证了10倍的性能提升.

金融服务,保险,精算

 

我们的风险和分析能力(...)完全用F#编写

  1. 劳伦斯·奥斯丁
  2. 托克集团首席风险官
  3. source, permalink

…直接与托克的首席风险官/定量分析负责人合作,编写代码并迅速扩展我们的风险和分析能力,这些完全由F#编写.

托克有限公司在全球范围内从事原油,石油产品,液化石油气,金属和金属矿石的供应和承购. 其解决方案包括贸易,融资,对冲和后勤支持…….

大宗商品,交易,风险,分析

 

F#解决方案使我们的生产率提高了一个数量级……

  1. GameSys
  2. Yan Cui
  3. 首席服务器工程师
  4. source, permalink

F#正在成为服务器端基础结构中越来越重要的部分,该基础结构支持具有数百万活跃用户的移动和基于Web的社交游戏. 在我们的社交老虎机游戏的规则引擎的实现中,F#首先在我们的技术堆栈中脱颖而出,到现在,该游戏每天为超过700,000个唯一玩家150,000,000个请求提供服务,峰值请求为每秒几千个. F#解决方案使我们的工作效率提高了一个数量级,并允许一个开发人员执行一组专用开发人员在基于Java的现有解决方案上执行的工作,这对于支持我们的敏捷方法和每两周发布一次发布至关重要周期.

F#的MailboxProcessor提供的基于代理的编程模型使我们能够毫不费力地构建具有高并发要求的线程安全组件 ,而无需使用锁,也不会牺牲可维护性和复杂性. 这些基于代理的解决方案在大规模运行的同时,还提供了大大提高的效率和延迟. 的确,我们为MMORPG提供的基于代理的状态服务器已证明是一项巨大的成功,并且节省了大量成本,我们正在将其推广到所有社交游戏中!

游戏,代理,云,大数据,可扩展性

 

使用F#进行跨平台移动开发(Android,iOS)可以节省开发时间

  1. 詹姆斯·摩尔
  2. 高级软件开发人员
  3. Digium,Inc
  4. permalink

我们想使用尽可能多的共享代码来开发我们的Android和iOS应用程序. 我们使用F#actor(又名邮箱处理器)构建了一个反应式体系结构,以构建一个非常强大的多线程系统,该系统可轻松在Android和iOS之间移植.

我们的F#参与者(在iOS和Android之间共享)公开了.Net IObservables,它们是为本机平台编写的UI系统使用的. 以这种方式划分系统允许使用其他.Net语言很难编写的可测试多线程代码.

iOS,Android,Xamarin,reactive

 

对于机器学习科学家而言,实验速度是优化的关键因素.

  1. 帕特里斯·西玛德(Patrice Simard)
  2. 杰出工程师
  3. Microsoft
  4. permalink

我写了几天后在F#中部署在Microsoft AdCenter中的点击预测系统的第一个原型.

对于机器学习科学家而言,实验速度是优化的关键因素. 编译速度很快,但是将大量数据加载到内存中需要很长时间. 使用F#的REPL,您只需加载一次数据,然后就可以在交互式环境中进行编码和浏览. 与C#和C ++不同,F#是为此交互模式设计的. 它具有Matlab或Python的易用性,这在我过去已经广泛使用过. Matlab和Python的一个问题是它们不是强类型的. 由于错误,缺乏可重用性,重构成本高,没有智能感知和执行速度慢,因此没有任何编译时类型检查会损害实验的速度. 切换到F#是一种解放,令人振奋. 2个警告:并非每个问题都适合该模型. 有了一些约束,例如尽可能长时间地避免大规模并行处理,该模型可以走很长一段路. 第二个警告是学习F#的成本很高. 对我来说,生产力下降了2个星期. 已证明是值得的投资.

作为使用F#进行机器学习的编程人员,我经常在以下两项活动之间切换:1)编写原型代码(高度交互的丑陋代码,并丢弃结果,函数和可视化内容),以及2)将原型代码升级为库标准(快速,通用,可重用). 当我回到编写原型时,我基于新升级的功能. 在F#中,在这两种模式之间切换的成本最小:除了添加注释和删除不赞成使用的函数之外,通常不需要执行任何其他操作.
这意味着大部分时间都用于实验,并且大多数代码都接近于运输质量. 某些人可以在C#或Matlab中执行此操作,但是我发现F#擅长于此.

我以对效率的深深怀疑开始了F#. 我的第一个测试是将F#与C ++ / CLI链接起来,并检查调用SSE / AVX优化代码的性能. 正如所希望的那样,在速度方面,F#与C#相当. 您具有与经过优化的代码链接的相同灵活性. 内联泛型确实具有魔力:链接的DLL中具有相同的IL,但是在实例化它们时,这些功能会扩展为专用的快速代码. 仍然需要在直观代码和高效代码之间进行折衷. 我发现" for"循环," tail递归"循环或Parallel.For与ThreadLocal循环相比,比一系列管道式IEnumerables(F#中的seq)要快. F#不会妨碍编写丑陋的快速代码的能力. 放心.

由于上述原因,Microsoft Research的机器学习小组中的一些人已切换到F#. 世界正朝着有充分理由的函数式编程迈进:代码更干净,更易于在分布式环境中调试. 在可用的功能语言中,F#是引人注目的选择.

广告,机器学习,数据科学,统计,预测

 

我们看到将F#用作CAD中的脚本语言的巨大潜力. 它非常适合建筑行业中的计算设计挑战.

  1. 戈斯温·罗森塔尔
  2. Design Engineer
  3. 瓦格纳局
  4. permalink

近年来,许多建筑师发现他们可以通过使用参数设计,编程或脚本来极大地扩展其设计范围. 建筑师现在可以快速轻松地探索以前在建筑学中看不到的新几何. 除了以新颖的方式进行设计之外,这些几何形状还可以根据结构可行性和制造约束条件进行精确表示和推理. 这些事实使新的几何形状脱离了建筑师的梦想,并使其成为建筑的真正候选人.

Jean Nouvel创作的卢浮宫阿布扎比就是其中之一. 瓦格纳-比罗(Waagner-Biro)被授予了Dome的建筑合同. 对于该穹顶的覆层,必须描述和自动化定制的铝挤压件的450'000个单独的切割和钻孔图案. 穹顶覆层的巨大规模和复杂性要求我们重新评估我们的参数化设计方法. 我开发了一个F#应用程序来表示和组织圆顶的所有包层元素. 它包括一个小的几何核和一个改进版本的Half Edge Data Structure,可以有效地查询每个元素的邻域. 我使用Rhino及其.NET API来托管用于绘图和可视化的F#DLL. 该应用程序使我们能够在单个参数模型中拥有从主要几何图形设置一直到制造数据的集成工作流程. 此项目是Waagner-Biro首次将F#用于大型项目. 从动态脚本语言转换为F#有助于减少开发时间和执行时间. 强类型化的环境,代数数据类型和不可变数据帮助避免了一系列错误,并且非常适合生成静态3d几何的领域. 我认为F#可以用作CAD中的脚本语言,尤其是因为大多数大型CAD软件包已经提供了.NET API.

(图片来源:Jean Nouvel Architects)

几何,CAD,建筑业,犀牛

 

结果不言自明.

  1. 马特·鲍尔
  2. 丽兹伯尔美容有限公司
  3. permalink

作为企业,我们每天都在积极寻求改进. 这对于我们的IT系统来说是相同的,因此我们一直在寻找一种在内部软件系统中做到这一点的方法.

F#类型系统使我们能够做到这一点-消除了空引用,提高了类型安全性,并创建了丰富的域模型,这些模型可以帮助我们以真正依赖于编译器的方式来表达坚硬的业务规则. 同时实际​​上减少了我们的总代码行(和噪音!). 这样做既减少了我们对生产系统中昂贵的bug搜索的需求,又降低了维护不必要的代码复杂性的总体成本.

我们已经对F#进行了一年的评估,并且生产系统中的组件自部署以来就没有错误. 结果不言自明.

零售,电子商务,ETL,Web服务,Soa,正确性

 

…我们决定使用F#作为我们的功能语言,以与系统的其余部分自动集成…

  1. 基于EMEA的安全解决方案公司
  2. permalink

我们开发安全产品来保护全球各国的关键基础设施(例如,炼油厂,机场等). 我们产品的核心是预测算法. 我们使用不同的建模和定理(Monte Carlo,Action等)来实现预测组件. …由于我们正在使用.NET重写下一代产品,因此我们决定使用F#作为功能语言来与系统的其余部分自动集成. …我们还有先进的机器学习组件(人工智能),而功能语言最适合编写AI东西. 由于F#与.NET的互操作性,我们计划将F#用作该领域的主要编程语言.

安全,整合

 

借助新工具,该银行可以将开发速度提高50%或更多,提高质量并降低成本.

  1. 欧洲大型金融服务公司
  2. source, permalink

欧洲一家大型金融服务公司寻求新的开发工具,这些工具可以降低成本,提高生产率并改善数学模型的质量. 为了满足其需求,该银行部署了F#、. NET Framework和Visual Studio. 它将很快升级到Visual Studio 2010,然后集成F#. 借助新工具,该银行可以将开发速度提高50%或更多,提高质量并降低成本.

金融服务,金融建模,衍生工具,固定收益

 

F#鼓励使用理性驱动开发,从而导致几乎没有错误的代码

  1. 波士顿金融服务公司,固定收益
  2. permalink

我们之所以使用F#,是因为它极大地提高了软件开发速度,这对于开发资源有限的小型公司而言至关重要. 该语言最令人愉悦的功能是,开发人员可以对代码进行推理,而不仅仅是依靠单元测试. 我要说的是,该语言鼓励使用"理性驱动开发"方法,该方法可以导致几乎没有错误的代码. F#作为强类型功能语言非常适合我们的软件解决的任务-固定收益证券交易优化. F#计算引擎可以与基于.NET的软件产品的其他部分无缝集成也非常重要.

固定收益,交易,优化,金融服务

 

在一家大型投资银行,我们使用F#建立流动性风险预警指标系统

  1. 斯蒂芬·基德尔
  2. Cepheis有限公司
  3. permalink

预警指标是一个独立的仪表板应用程序,用于监视实时市场走势并突出潜在风险以进行进一步分析. EWI订阅了实时股票,外汇和商品价格,并需要实时计算红色/琥珀色/绿色状态,以了解是否违反容忍度,并根据需要生成仪表板报告.

该企业希望能够灵活地使用Excel表达式来定义公式,但是电子表格组件无法在没有合并的情况下应对数据速率,并且管理层不希望依赖Excel模板和IT变更控件的解决方案来添加新指标.

选择F#是为了提高开发效率,使用计算表达式实现的单元框架的性能; 轻松将Excel表达式解析为DSL和.NET与QALib,Market和计时器系列数据的集成.

实施后的审查强调指出,如果没有F#及其相关工具,将(牺牲资源和时间限制)牺牲功能.

 


我对F#的紧凑性和可读性感到惊讶...

  1. 伦敦资产管理公司
  2. permalink

我们已经建立了一个完整的风险管理系统,该系统结合了多个数据源,并在…WPF用户界面中进行了显示,并在后台进行了大量计算. 当计算需要适当的算法(即比简单的for循环更复杂的算法)时,我们选择F#. 我不得不说,它的紧凑程度以及尽管如此,即使我正在阅读六个月来都没有看过或想过的代码,它的可读性仍然让我感到惊讶.

数据,分析,计算,金融服务,衍生工具

 

在整个研发周期中有效使用函数式编程有助于使周期更快,更高效.

  1. 穆迪·哈迪(Moody Hadi)(芝商所集团)
  2. permalink

信贷市场的流动性有所不同. 市场参与者想了解其实体集合的流动性相对于整个市场如何变化. 需要一个流动性评分模型来在整个CDS领域中提供这些指标. 使用函数式编程(尤其是F#)来为市场提供快速而准确的解决方案. …通过有效使用函数式编程,可以更快,更高效地进行研发.

在整个研发周期中有效使用函数式编程有助于使周期更快,更高效. 花在翻译需求,沟通不畅等方面的时间更少,而花在快速生成快速而准确的解决方案上的时间却更多.

由于程序员可以理解您的定量代码,因此他们可以专注于自己的核心能力-开发快速而可靠的生产代码. 开发工作将针对优化,性能调整和错误处理(即使代码可靠)进行处理,而不会因沟通不畅或原始文档/需求而失去原型的功能,从而节省了测试时间. 大规模回归测试非常容易,原型与生产系统之间的精度水平也很精确.

 

F#使您可以顺畅地进行编程

  1. 朱利安·劳格尔Julien Laugel) ,eurostocks.com
  2. source, permalink

我最近一直在F#中编码,用于生产任务. F#使您可以顺畅地进行编程风格…我从纯功能代码开始,略微转向面向对象的风格,在生产代码中,有时我必须进行一些命令式编程. 我可以从一个纯粹的想法开始,但仍然用现实的代码来完成我的项目. 您在项目的任何阶段都不会失望!

命令性,功能性,金融服务,投资组合分析

 

我现在已经交付了三个用F#编写的关键业务项目. 我仍在等待第一个错误的出现.

  1. 英国电力公司
  2. 西蒙·考辛斯
  3. permalink

我既是C#开发人员,也是F#开发人员. 根据我以两种语言交付项目的经验,我只能提供主观的轶事证据(我太忙于交付软件,无法做其他任何事情).

就是说,摘要中我认为最引人注目的一项统计是缺陷率. 我现在已经交付了三个用F#编写的关键业务项目. 我仍在等待第一个错误出现.我交付的C#项目不是这种情况. 我将继续对此进行监视和报告. 可能是我走运了,但是我怀疑F#代码的简洁明了对其正确性有很大贡献.

能量,提取,变换,负载,ETL

 

对于从原始Excel输入构建模型所需的复杂数据处理,F#被证明是理想的选择.

  1. 财富100强制造商
  2. 提供给FSSF, 永久链接

我们开发了一个ClickOnce F#/ WPF应用程序,该应用程序使用Microsoft Solver Foundation(MSF)对成千上万的零件供应商组合模型进行评分和排名. 代理商可以从得分最高的组合中进行选择,以优化购买决策. 对于从原始Excel输入构建模型所需的复杂数据处理,F#被证明是理想的选择. 同样,MSF提供的F#功能包装器是使用F#的Solver Foundation的一种好方法.

制造,优化,Excel,求解器

 

类型提供程序使使用外部数据源的工作变得简单而直观.

  1. 乔恩·坎宁
  2. 物业翻新
  3. permalink

每天,我们都会分析来自XML和JSON提要的数十万个属性的数据. 选项和类型提供程序之类的功能为我们提供了难以置信的简洁,表达性和可测试的代码来处理它们,使我们可以专注于业务价值.

作为一名从C#转变为开发人员的人,您可能难以理解有关函数式编程的某些概念,并且入门门槛似乎很高. 但是,仅凭基本的了解和乐于助人的社区,F#已被证明非常有生产力,并迅速成为我的首选语言.

这些项目中大约95%的代码是用F#开发的

  1. Microsoft的 Anton Schwaighofer
  2. bing Ads排名分配和定价
  3. source, permalink

这些项目中大约95%的代码是用F#开发的. F#允许快速开发原型,因此也可以快速验证或伪造基础数学模型. 可以简洁地表达复杂的算法,例如在博弈论中计算纳什均衡. 度量单位极大地减少了出错的可能性:价格,概率,导数等在编译时已经可以分开.

广告,排名,评分,机器学习,统计

 

F#对于Microsoft的量子算法研究至关重要

  1. 戴夫闹钟
  2. 微软高级策略与研究
  3. permalink

F#对于Microsoft的量子算法研究至关重要. LIQUi |⟩仿真器(语言集成量子运算)提供了F#的扩展,它提供了经典运算和量子运算的无缝集成. 模拟器的规模和效率使其可以处理最大的纠缠的量子位(量子位)系统,这些系统是使用完全用F#编写的目标线性代数程序包建模的. 此外,模块化架构允许用户轻松地在任何所需的研究方向上扩展系统. 该基础库包含超过20,000行代码,并实现了广泛的模块,包括电路,分子建模,自旋玻璃系统,量子误差校正,机器学习,分解等. 该系统在客户端,服务器和云环境中运行. 它也被设计用作教育工具,并且我们发现让新用户快速熟悉是一个快速而轻松的过程.

模拟,量子,微软,建模

 

F#是我在黑暗中尝试解决以前未解决的问题时所需的夜视镜.

  1. 拜伦·库克教授
  2. Microsoft, permalink

自2004年以来,我是F#的第一批用户之一.在我的工作(例如SLAM,Terminator,Zapato,T2等)中,我发现F#是我进入黑暗并试图解决问题时所需的夜视镜.以前未解决的问题. 用F#表示时,一切变得简单明了.

验证,算法,分析,问题解决

 

F#将继续成为我们选择科学计算的语言.

  1. 安德鲁·菲利普斯博士
  2. 生物计算小组负责人
  3. 微软研究院, 永久链接

我领导Microsoft Research的Biological Computation小组,我们在那里开发用于建模和分析生物系统的方法和软件. 在过去的7年中,我们一直在我们的团队中使用F#,这是我们所有软件开发的首选语言. 特别是,它构成了我们软件的基础,该软件用于对由DNA制成的计算电路进行编程,对在细胞内部运行的遗传设备进行编程以及对模块中的复杂生物过程进行编程.

F#提供的功能数据结构和静态类型检查非常适合开发这些特定于域的语言,而Visual Studio集成对于调试和源代码控制而言是极好的. 与.Net的集成是无缝的,使我们能够合并以C#编写的高效数字和可视化库. 它还使我们能够利用全套.Net UI组件.

我们的语言是用正式的语法和语义指定的,在实施之前会对其进行严格分析. 使用F#之类的功能语言进行编程可使实现更加接近正式规范,这对于确保准确的仿真和概率分析非常重要. 正确实现语义是至关重要的,因为即使很小的编码错误也可能引起发散的预测,进而可能损害生物学实验. F#是一种用于编写简洁代码的出色语言,它在支持大量库的专业开发环境中静态键入. 它将继续成为我们选择科学计算的语言.

生物学,建模,算法,分析,DNA计算,正确,科学计算

 

在Microsoft的工程团队中,我们将F#用于多个项目

  1. 微软工程团队
  2. permalink

在Microsoft内部工程团队中,F#用于几个重要工具:

  • 分析网络上的反馈以查找与兼容性相关的问题,
  • 静态代码分析器来检测产品中的兼容性退化,
  • 一个增量调试工具,可帮助在产品构建中进行根本原因回归分析.
工具,工程,调试,构建,静态分析

 

我的团队选择F#是因为它的功能范例,成熟度以及与.NET框架的互操作性.

  1. 迪伦·哈奇森(Dylan Hutchison)
  2. 微软研究院(实习生),史蒂文斯理工学院
  3. permalink

为了提出一种针对特定领域的新语言的想法,我的团队选择了F#,因为它具有功能范式,成熟度以及与.NET框架的互操作性. 我在F#的数据类型库(记录,有区别的联合,顶层的几个类)中编写了语言原语,并使用其模块层次结构对类型进行了操作,并将我们的操作转变为F#Interactive中的有效演示.在大约10天内.

每当我的代码在第一次通过时正确执行时,我都会为之高兴,而在少数情况下,通过Visual Studio进行调试自然而又快. 至于.NET,尽管Excel带来了F#所无法企及的挑战,但通过导入必需的DLL可以轻松地与Microsoft Excel集成. 最后,我可以验证F#具有正确性和安全性,比过去使用的其他语言更强. 可以放心地知道您的代码将完全按照您的预期执行.

DSL,Excel,机器学习,正确性

 

该语言的简单,精心设计且功能强大,非常适合介绍函数式编程的基本概念.

  1. 迈克尔·汉森
  2. 丹麦技术大学副教授
  3. permalink

编写基于F#的函数式编程是一种了不起的经验.

在基于F#的课程中使用该材料介绍函数式编程的基本概念也是一种令人愉快的体验. 简单,精心设计但功能强大的语言核心非常适合该目的,令我们惊讶的是,无论使用哪种平台,从使用SML到使用F#的过渡实际上都使学生更容易使用该工具.

此外,具有丰富运行时环境的F#已被证明是研究应用程序和更高级课程中的优秀编程平台,旨在展示函数式编程在从计算机科学应用程序到更真实的应用程序的各种应用程序中的作用. . 在本课程的第一个版本中,学生与Anh-Dung Phan一起完成,在三个星期内完成了三个项目:一个是丰富的命令式编程语言的解释器,另一个是功能珍珠的实现,应用和分析,以及最后是丹麦技术大学的课程规划系统.

 

使用该语言解决了许多编程问题,使我深信F#的卓越品质

  1. 汉斯·里舍尔
  2. Former teacher of computer science at the Technical University of Denmark
  3. permalink

我的前同事Michael(Michael R. Hansen)在2010年秋天与我联系,他提议我们应该编写一本有关函数式编程的新教科书-现在使用F#编程语言. 首先,我对使用出现在Microsoft程序包中的编程语言持怀疑态度. 但是,使用这种语言解决许多编程问题使我相信了F#的至高品质-我们着手进行了一个熟悉F#并编写教科书的项目.

迈克尔和我花了很多时间解决F#中的传统编程问题. 将功能性和命令性F#与偶尔的OO相结合,为程序开发提供了一个非常令人愉悦的平台-一旦您在MSDN文档的原始内容中找到了出路(MSDN世界的新手可能会从MSDN文档中找到的MSDN库文档中受益. 本书的网站 ). 第10章的全部内容和第11章的部分内容均使用此编程风格提供了程序示例.

计算表达式一开始看起来很神秘,但实际上却很有用. 我们花了很多时间试图将这个概念付诸实践,目的是使像我们这样的头脑简单的人都可以使用它. 读者可以通过学习本书的第12章来判断我们取得了多大的成就.

与迈克尔一起编写这本教科书是一次激动人心的经历.

 

F#强大的类型推断功能意味着更少的打字,更多的思考

  1. 唐·塞姆
  2. 微软首席研究员
  3. 2009年欧洲Eclipse峰会,资料来源 ,幻灯片49
  4. permalink

F#用于Microsoft的adCenter的AdPredict项目. 这是一个为期4周的项目,由4位机器学习专家组成,涉及一个具有1亿个概率变量的模型,并实时处理6TB的训练数据. 训练期间使用了2周的CPU时间. 优点包括快速编码 -F#强大的类型推断功能意味着更少的键入,更多的思考, 敏捷的编码 -类型重构的代码易于重构, 脚本编写 -"动手实践"探索, 性能 -即时扩展至海量数​​据集, 忠实于内存 -超级-16GB计算机上的数据结构, 简洁性 -驻留在域中,而不是语言中- 符号 -架构编译以及"计划"和.NET集成 -特别是Excel,SQL Server

集成,机器学习,广告,预测

 

…AI在F#中实现…

  1. Microsoft, 走的路
  2. video source, permalink

《围棋之路》由三种技术提供动力……:一种能够播放围棋的AI,F#语言以及与在线玩家相匹配的TrueSkill. 该AI是用F#实现的,它迎接了在Xbox 360的.net紧凑型框架中高效运行的挑战.此游戏可将您带入许多视觉上令人赞叹的3D场景. 它是使用XNA环境在托管代码中完全开发的.

人工智能,统计,机器学习,TrueSkill

 

…尽可能用F#编写核心逻辑…

  1. 安德里亚·丹蒂诺(Andrea D'Intino)
  2. 黄蓝软
  3. permalink

黄蓝色软件是真正的国际化Micro-ISV:我们是一个很小的,充满活力的国际团队,想知道为什么文件管理落后30年,而且似乎没人在乎甚至没有注意到. 我们的确是. 我们喜欢我们正在做的事情,最重要的是我们喜欢听听您的声音! 访问我们的博客以了解更多关于我们的信息,并加入我们的论坛成为我们波光粼粼的社区的一部分.

表格是特殊的容器,可用于对任何类型的文件和文档以及文件夹和书签进行分类. 使用Tabbles,您可以以一种全新的方式对文档进行快速分类,查找,排序和共享.

应用程序,业务逻辑

 

当F#与Visual Studio结合使用时,生产力就将蒸蒸日上!

  1. 奈杰尔·霍斯普尔教授
  2. 加拿大维多利亚大学
  3. source, permalink

F#程序往往比其他语言的等效程序短得多. 当然,所需的代码行越少,生产率越高. 当F#与Visual Studio结合使用时,Visual Studio可以帮助您记住附加到不同数据类型的方法以及如何使用这些方法,从而极大地提高了生产率!

教学,研究

 

…这就是为什么我们选择F#作为我们的本科函数式编程课程的原因……

  1. 教授 彼得·塞斯托夫特
  2. 哥本哈根IT大学
  3. permalink

F#的核心是一种美丽,简单但具有表现力的语言,并且围绕该核心语言构建了许多强大的功能. 它可以利用.NET库的所有功能,并且可以在Windows,MacOS和Linux上运行. 这就是为什么我们选择F#作为我们的本科函数式编程课程以及我们的本科编程语言课程的原因(link)

技术,研究,跨平台

 

F#…平分了初学者和经验丰富的程序员之间的竞争环境.

  1. 苏珊·艾森巴赫教授
  2. 英国帝国学院
  3. source, permalink

函数式语言是教授清晰思维,解决代码解决方案所需要解决的问题的理想之选,并且可以平衡初学者和经验丰富的程序员之间的竞争环境. 所教授的第一门编程语言对学生自由选择时使用的语言有很大影响. 一旦与平台无关,F#就有可能成为第一种编程语言.

教学,研究,跨平台

 

F#…让它变得微不足道…

  1. 大卫·沃克教授
  2. 普林斯顿大学
  3. source, permalink

尽管不具备函数式编程或F#的经验,但我们今年秋天的并行课程研究生课程已满. 学生们自己准备课件,我们正在研究的主题之一是具有连续,随时间变化行为的函数式反应性编程(FRP). F#及其丰富的图形库使构建超级乐趣任务变得轻而易举,其中包括模拟太阳系的纯功能和交互式动画.

教学,研究,跨平台

 

我们建议教授F#,因为它是用于教授计算机科学各个领域的非凡而灵活的工具

  1. 安东尼奥·奇斯特尼诺
  2. 比萨大学,意大利
  3. permalink

在比萨大学,我们使用F#教授UI编程,这是三年级课程中的基础课程. 在2014年,另外两门课程(编程I和II)将使用F#和Try F#.

我们使用F#进行教学,因为它拥有丰富的编程环境和可访问所有系统资源(例如UI)的库,因此它既适合基础知识又适合技术教学. 而且,由于F#具有交互性,即使F#是静态类型的语言,它也感觉像是一种动态语言. 我们的学生在Windows,Mac和Linux上使用F#. 尝试F#是一种特别有价值的教学工具,因为它具有相当复杂的编辑器,具有交互式评估功能,并且可以与学生共享保存的文件.

我还使用F#在Scuola Normale Superiore的科学家教学程序设计,ITU在哥本哈根的博士学位课程以及生物医学工程的研究生中教学.

我们建议教F#,因为它是用于教授计算机科学各个领域的非凡而灵活的工具. 该语言丰富,其功能性质允许轻松定义用于教授特定概念的适当子集. 我使用它通过键入代码来教授整个课程,并进行交互式评估以讨论单个评估的结果. 它也是向科学家和工程师教授编程的一个很好的工具:我发现非程序员更容易掌握它在lambda微积分中的数学根源,而交互式评估则回想了在这些社区中非常流行的Matlab和Mathematica等环境.

 

F#在我的学生中很受编程项目欢迎

  1. 西芒·索萨(SimãoSousa)
  2. 贝拉内政大学,葡萄牙
  3. permalink

我在讲座(计算理论,形式语言和编译器设计,形式方法,应用密码学)中教授和使用OCaml和F#,F#在我的学生中很受编程项目欢迎. 在我的指导下,大多数学生(本科生,硕士和博士学位)都使用F#作为基础编程语言. 现在情况更是如此,因为我们的研究方向的一部分包括在云/分布式系统上工作.

F# and its programming environment leverage with no doubt the ability and the productivity of my students. This is, in my opinion, for two main reasons. First, F# allows the student, but also the researcher like me, to focus on the key aspects of his creation, while, secondly, enhancing
technologically the work done in a so remarkable and facilitated way. Once drawn in paper and pencil, an algorithm is naturally implemented in F# and easily deployed in whatever is its execution context.

我绝对是F#的坚定信奉者,并为该语言及其社区感到惊讶.

教学,研究,跨平台

 

我对F#进行了评估,发现对于某些任务,在保持适当的可读性的同时,在性能方面优于C#.

  1. Atalasoft
  2. source, permalink

我对F#进行了评估,发现对于某些任务,在保持适当的可读性的同时,在性能方面优于C#;对于某些任务,它更适合某些算法(基于基于OctTree的颜色量化). …我们能够在F#中充分利用内联函数……由于每个都是内联函数,因此F#优化器实际上可以对代码做一些有用的事情. 通过使用F#,我们能够通过使用内联,代码概要分析,扫描线缓存,备忘录和其他技术来解决此成本. 在许多情况下,我们最终得到的代码运行时间与C ++代码相当,或者在某些情况下更快.

算法,性能,损坏处理

 

我们建议将F#作为.NET堆栈上任何公司构建软件的工具包中的附加工具.

  1. 迈克尔·牛顿Michael Newton) ,高级开发人员
  2. 15below Ltd, 永久链接

从历史上看,我们的代码库是用C#和VB.net混合编写的. F#与.NET其余部分的出色互操作性使我们可以将其用于具有特别优势的组件,而不必丢弃或重写我们现有的代码.

无论是驱动构建和持续集成系统(由于脚本是F#世界中的一等公民)还是编写坚如磐石的基础架构组件(由于通过诸如计算表达式,类型推断和区分联合等功能都易于使用功能范式) ),我们发现我们的F#代码简洁,易于编写且使用可靠. 它非常适合我们基于消息传递的体系结构中的许多组件.

我们建议将它作为.NET堆栈上任何公司构建软件的工具包中的附加工具.

 

"速度. 我是速度."像魅力一样为F#工作.

  1. Sync.Today
  2. permalink

我们感觉到了C#Sync.今天,从所有C#脚本,挂钩等开始,2013年开始变得巨大.与此同时,它并没有真正为我们提供满足客户需求所需的灵活性. 我们决定不只是进行另一轮重构,而是决定开始使用Sync.Today进行F#.今天,2015年.由于两种语言共享相同的通用CLR,所以我们并未放弃所有内容. 由于F#代码的行数少得多,我们才开始进行越来越多的简化(我们有146831x" {或}",56555x"空白",2770x"空检查",56194x"注释",最后是223502"有用的行")我们拥有30602行,具有更多的功能和优势.)由于我们正在处理大量信息,但是没有复杂的计算等,因此Orleans成为了我们基于该解决方案的分布式计算库. 它现在正在使用混合的C#+ F#代码,这对我们来说是完美的,并允许我们在本地和Azure中运行.

同步,集成,启动

 

Bohdan…展示了F#用于利用CPU和IO并行性对大型数据集执行聚合的用法

  1. 博丹·希曼尼克
  2. permalink

Bohdan Szymanik, CTO at Kiwibank, is keen to show how he’s been using F# for analysis tasks within the bank. He’ll provide an intro to the language then show its use for performing aggregations over large datasets, taking advantage of CPU and IO parallelism, and data presentation through charting and image generation.

金融服务,数据,分析

 

我正在使用F#开发使用完全同态加密的数据加密API.

  1. Vitor Pereira
  2. permalink

我目前正在使用F#开发我的本科生期末项目. 该项目包括开发一个应用程序编程接口,该接口允许使用完全同态加密对数据进行加密,我在F#中发现了开发它的理想编程语言.

除了这种功能范式的所有优点之外,F#与.NET平台的互操作性还允许构建功能强大的实现,而其他功能语言则不那么容易实现.

我真的希望在将来,我继续使用F#作为我项目的主要编程语言来从事密码学研究. 我还准备了有关F#和密码术的动手演示,将在Microsoft葡萄牙的一次活动中进行演示,我一定会喜欢的!

安全性,密码学,学生,学术界

 

我可以告诉你,F#确实为我们节省了很多精力.

  1. 朱塞佩·马焦雷(Giuseppe Maggiore)
  2. permalink, source

我是Galaxy Wars的首席开发人员,我可以告诉你,F#确实为我们节省了很多精力. 我相信单单是协程,这就是我们设法按时发货的原因……

games

 

编码很有趣

  1. 纳米加普 (Erik Araojo)
  2. permalink, source

我用F#编写了两个商业应用程序,即WcfStorm.Rest和WcfStorm.Server.
UI部分在C#中,而库部分在F#中. 以我的经验,编码是一种有趣的语言.

安全性,密码学,学生,学术界

 

每个人尝试F#并体验其巨大的表达能力时都会非常惊讶

  1. 马里奥·佩雷拉(Mario Pereira)
  2. 微软学生合作伙伴
  3. 波尔图大学理学院
  4. permalink

我已经成为Microsoft学生合作伙伴(MSP)三年了,这为我提供了与大多数葡萄牙教职员工及其学生保持联系的机会,使这一变化成为Microsoft技术的传播者. 我选择花我的MSP经验为F#和使用F#进行函数式编程入门研讨会. 到目前为止,我已经在大多数葡萄牙语系以及微软葡萄牙语总部进行了这些演讲. 结果总是一样的:每个人尝试F#并体验到其巨大的表达能力,令人愉悦的语法并意识到他们可以在熟悉而舒适的环境中进行函数式编程(通常被认为是无聊而复杂的事情)时,会感到非常惊讶. 目前,与葡萄牙MSP同行(继先前的演讲取得成功之后,并回应了有关F#的新会议的许多要求),我正在准备有关如何使用F#进行密码学的动手会议.微软葡萄牙的未来活动.

就个人而言,F#为我提供了扎实而可信赖的基础,以舒适而简洁的方式开发可靠而复杂的应用程序,这是其他语言和范式无法实现的. 毫无疑问,我可以说我是F#的忠实拥护者,而且我一直渴望与该语言所提供的每个新功能保持联系.

 

…您的代码不太容易出错…

  1. Dario
  2. source, permalink

您可以使用F#之类的功能编程语言轻松地编写许多问题,使其更接近定义,并且更加简洁,并且您的代码不易出错(不变性,更强大的类型系统,直观的递归算法). 您可以编写您的意思而不是计算机想要说的内容;-)此外,您可以在一个解决方案中同时使用F#和C#,因此您可以将两种语言的优势结合起来,并在需要时使用它们.

领域建模,不变性

 

I’d recommend F#… learning another language is one way to become a better programmer.

  1. 安东尼奥·海莉
  2. source, permalink

我建议将F#推荐给顽固的C#开发人员,因为学习另一种语言是程序员摆脱局部极大限制并成为更好的程序员的一种方式. F#不仅是与大多数命令性语言相同的语法之上的一组不同的语义,而且是一种完全不同的编程风格. 进一步扩展了程序员的能力和理解力.

学习,命令式,功能性

 

…我们在海洋学研究中使用F#将多个可视化在时间和空间上连接在一起…

  1. 微软研究部Rob Robland
  2. permalink

我们在海洋学研究中使用F#将多个可视化在时间和空间上连接在一起,这就是地图平面的位置和深度. 我们首先使用C#构建用于Layerscape的Narwhal开发人员库,重点是可视化流线并理解漂移实验数据. 这些数据非常复杂,涉及物理海洋状态和微生物代谢过程的测量,整合遥感和被动式漂移器,以及将这些当前测量与自动机器人的轨迹相加. 我们对可视化挑战的技术术语是"可怕的".

为了解决这个可怕的问题,我们开始添加F#脚本. 这非常有效,特别是在将有关数据探索的想法迅速转变为实际工具方面. 迄今为止,我们最有趣的成就是将图表连接到4D可视环境中. 设置是这样的:科学家看到了两种数据视图:第一种是时间对深度的窗帘图中的彩色编码结构(例如,叶绿素编码为颜色),第二种是在动态的Worldwide中以时间框形式显示的相同数据望远镜(WWT)可视化引擎. F#用于将它们连接在一起:左键单击(并拖动)在图表中来回滚动WWT时钟. 右键单击并在图表中拖动以选择数据的子集,然后将其用于构建新的(小)对流可视化. 由于所选的作品很小,而且是交互式选择的,因此我们避免了一次看到所有事物的可怕问题. 就像看到整个森林,使几乎所有奇特的树木消失一样. 因此,F#是取得快速进步的好方法,也是学习的乐趣.

可视化 天文学; 海洋学研究; 微软

 

…我不得不说我喜欢这种语言…

  1. 贾里德·帕森斯
  2. source, permalink

在过去的6个月左右的时间里,我一直在研究Vim仿真层. 这是我使用F#完成的第一个大型项目,我不得不说我喜欢这种语言. 在许多方面,我都将该项目用作学习F#的方法(如果您仔细查看该项目的历史,这种学习曲线将非常明显). 我发现F#最令人惊奇的地方就是它的简洁程度. Vim引擎包含大部分逻辑,但仅占整体代码库的30%.

学习,简洁

 

俄罗斯开发人员社区对F#有明显的兴趣.

  1. 德米特里·索什尼科夫(Dmitry Soshnikov)
  2. 莫斯科航空技术大学副教授
  3. permalink

我在F#中为讲座和本书制作了一些示例,但所有这些都在单用户VS 2010 Pro安装中. 现在,我们在课程资料库中有一组有关使用F#进行俄语功能编程的幻灯片,以及最大的俄罗斯互联网大学(intuit.ru)提供的使用F#进行功能编程的视频课程. 该课程正在两所大学教授. 俄罗斯开发人员社区对F#有明显的兴趣.

 

F#摇摇欲坠…在这里建立了各种用于DNA处理的算法,就像药物一样

  1. 达伦·普拉特(Darren Platt)
  2. Amyris生物技术
  3. source, permalink

使用F#…,我们已经编写了一个完整的基因组重测序流程,包括接口,算法,约5K行的报告,并且它非常可靠,快速且易于维护.

F#摇滚-我们在这里建立各种用于DNA处理的算法,就像药物一样. 刚刚在150行中实现了后缀树,该树可以每秒索引200,000个碱基;)我们可能有10-20K行的代码用于许多科学应用,从可重构和注释酵母菌株的全基因组测序管道,到各种过程的模拟器,以及用于构建DNA序列/构建体的设计工具. 有一些位于实验室的应用程序,它们可以抓取机器人日志文件并将其移至数据库中,以及一个用于查看大量DNA测序数据的工具.

F#非常有用. 否则,我会用Python编写很多这样的代码,F#更加健壮,运行速度提高了20倍-100倍,除了最琐碎的程序之外,其他任何东西的开发速度都更快.

UI工作尤其令人欣喜,因为许多基因组数据显示的最新技术仍然是嵌入在JavaScript中的PNG图像,并且使用F#,我可以在网页上呈现半百万个数据点而无需跳过圈.

使用度量单位,我开始将坐标标记为基于一或零,然后立即发现一个错误,在该错误中我将两个系统随意混合. 是的F#!

生物技术,计量单位,生物信息学

 

F#编程语言的许多属性使其成为……分子分析数据呈指数增长的理想选择.

  1. 罗伯特·博西博士
  2. 助理教授
  3. 内布拉斯加大学医学中心
  4. permalink

我是内布拉斯加大学医学中心(UNMC)的教授,从事生物信息学和计算基因组学的研究. 在像UNMC这样的学术医疗中心,对我的时间有很高的要求,最终我可以从事各种各样的不同类型的研究项目. 在其中一些项目中,我已经在.NET和Mono框架上使用了F#编程语言,其中包括涉及与IntelliFactory进行非常高效的协作以及使用WebSharper的项目.
您可以访问生成的网站,并阅读免费的经过同行评审的科学出版物,该出版物描述了该F#软件开发项目所促进的重要传染病研究 . 我一直对与专业软件开发公司合作的机会感兴趣,这些公司的团队包括具有F#专业知识的开发人员,因为我相信F#编程语言的许多属性使其成为集成了电子病历(EHR)的软件解决方案开发的理想选择.数据)以及现在可以从各个患者那里获得的分子分析数据的指数增长(例如,个人基因组DNA测序数据).

在这个庞大的,新兴的,数据丰富的医疗保健市场中,F#有着令人兴奋的未来.

生物信息学,基因组学,健康,分子分析,模拟

 

我不能高度推荐F#–我坚持要您尝试一下!

  1. 本·林奇
  2. 医生实验室
  3. permalink

Doctors Laboratory是英国最大的临床实验室诊断服务的独立提供商. 从ETL任务到报告脚本,再到完整的Web应用程序,我们大多数内部开发都使用F#.

F#的惯用开发风格始于REPL中的脚本,然后再将功能移入结构更复杂的项目中,这使得探索不同的方法,重构&c变得轻而易举. 在致力于特定方法之前. 它还使开发变得更加愉快和直接–无需将所有锅炉板/管道安装到位; 您可以只创建一个脚本并开始编码. 编译器的类型推断系统也意味着更快的编码,更少的"压缩". 模式匹配和区别联合等功能还可以使代码更精简,更具表现力和透明性.

类型提供者意味着可以在几行中访问数据,并且这里有大量的社区驱动的OSS项目可用于异构数据源. 如果您需要访问现有提供程序不支持的数据源,那么社区会积极鼓励您自己提供一个,就像实际上我们为SQLProvider类型提供程序使用MSACCESS提供程序一样. 在为Stack Overflow,gitter等论坛提供支持方面,社区是一流的.其他社区项目(如Paket(依赖管理)和FAKE(也为build))也使构建自动化变得轻而易举.

网络,数据科学,医疗保健等

 

F#简洁的语法使最终代码看起来与我们最初编写的算法非常相似

  1. 绿鹰解决方案
  2. permalink

在Green Eagle Solutions,我们为可再生能源工厂开发控制系统. 因此,对于我们来说,在所有其他参与者(协议,天气状况,旧版软件)都起作用的实时环境中测试我们的软件至关重要.

事先,我们使用Python快速构建了模拟器来测试我们的组件. 使用F#,我们现在拥有了动态语言的所有优点,同时又保持了我们惯用的静态类型安全性. 我们不需要离开Visual Studio并能够无缝使用我们在C#中开发的所有API,这一事实也是一大优势.

我们还开始直接在组件中使用F#来实现核心逻辑,而将C#留给网络任务. 我们利用这种语言混合来创建一个依赖项注入器,该注入器可以在运行时每当脚本更改以进行快速开发迭代时重新编译F#逻辑,但是在生产环境中部署时会加载预编译的.dll. F#作为脚本和编译语言的双重本质在此真正闪耀.

F#的简洁语法使最终代码看起来与我们最初使用正式语言编写的算法非常相似. 同样,我们已经真正地欣赏到了F#生态系统中众多的元编程库:我们特别喜欢FSharp.Formatting,并开始采用文学编程风格来尽可能多地集成代码和文档,并防止它们失去同步.

能源,可再生能源,斯卡达,脚本,识字编程

 

F# makes it easy to spend your time answering interesting questions about the domain and less time answering questions about the language.

  1. 杰米·迪克森(Jamie Dixon)
  2. Coder
  3. 北卡罗来纳州卡里
  4. permalink

我在北卡罗来纳州的卡里镇提出了公开记录要求. 该数据集包含2012年的约25,000个交通停止记录.使用F#,我进行了一些基本的统计计算,以确定就何时停车而言,何时开车比在哪里行驶更为重要. 实际上,"速度陷阱"一词用词不当. 此外,数据还支持每月分配票数的概念. 您可以在此处阅读整个分析

另外,我使用停靠的日期/时间创建了一个KNN分类器,并确定当停靠会影响天气时,您会得到口头警告而不是实际票证. 您可以在此处阅读整个分析

最后,我在我居住的县(北卡罗来纳州韦克县)提出了公开记录要求. 该数据集包含2012年约5,000个健康检查得分.使用F#,我进行了一些基本的统计计算,以确定餐厅何时进行检查及其最终得分几乎没有差异. 一个有趣的分支是,某些特定的餐厅在所有检查员中得分都较低-除非首席检查员进行了检查,否则他们实际上得分更高. 检查员可能会固有的文化偏见. 您可以在此处阅读整个分析

F#很棒,因为我花了更少的时间来弄清楚如何回答我的问题,而花了更多的时间实际回答问题. 类型提供者可以轻松地使用和集成异构数据集,并且模式匹配功能将代码的复杂性降低了一个数量级(与C#相比). 最后,通过使用单元测试和不可变的数据类型,我拥有了一个抗错误的代码库,可以将其扩展到其他场景.

分析,开放数据

 

该语言的强大功能和灵活性使我们能够更快地发布功能,并减少错误.

  1. 马蒂·迪尔(Marty Dill)
  2. 提醒英雄
  3. permalink

我们所有的后端数据处理和解析都是在F#中完成的. 该语言的强大功能和灵活性使我们能够更快地发布功能,并减少错误. 回归实际上是不存在的,该语言的功能性质使其很容易确保我们的代码可测试.

我们的第一个迭代是用C#编写的,但是切换到F#之后,我们看到代码大小显着减少,同时可读性也有所提高. 对于将来的所有项目,我们一定会坚持使用F#.

数据,解析,处理,可读性

 

With F# I can develop libraries in a fraction of the time.

  1. 毛里西奥·谢弗(Mauricio Scheffer)
  2. permalink

我一直在其他大多数C#/ VB.NET Web应用程序中使用F#库. 由于F#的简洁性,我可以在短时间内开发这些库,然后像其他任何库一样从C#和VB.NET中使用它们.

此外,F#简洁的语法和REPL使其成为一种出色的脚本语言,并且非常适合数据探索. 由于F#的互操作性,这些脚本可以轻松使用以C#编写的域和库. 您无需从头开始,也不必重新发明.

诸如记录类型,区分的并集和类型推断之类的语言功能也使F#成为原型设计的绝佳语言. 我经常使用一些简化的用例在F#中为新的业务领域建立原型,以对其进行完善. 简单的语法使我可以专注于开发域并更快地进行迭代. 然后,当公司政策要求时,我将其转换为C#,这通常是一个简单的过程,最终会产生许多行代码(但仍可完美维护).

网络,领域建模

 

F#是一种功能强大的语言,使用它进行跨平台开发非常好.

  1. Can Erten
  2. 矢量代码
  3. permalink

矢量代码是iOS和OsX的代码生成器,用于在Objective C,Swift和C#中生成代码. 它可以处理矢量图,解析并运行SVG. 它是在Mac上使用F#开发的.

F#是Mac OsX的一流语言. 多亏了开源编译器Mono和Xamarin,我得以使用F#构建矢量绘图,代码生成器软件. 真是太棒了! 工具很棒,而且还在不断改进. 编译器和语言基本相同,这太棒了!

F# is a powerful language and it is great to do cross platform development with it. I used heavily quotations for generating code in different languages on vector code. Powerful type system and static compilation meant that, once the application compiled without errors and warnings, it will just work and generate complete code. It did, and now at the App Store.

osx,mac,代码生成,跨平台

 

F#的语言功能不仅使我们的项目变得轻而易举,而且使我们能够生成可组合,确定性和简洁的代码.

  1. 斯蒂芬·肯尼迪
  2. Readify
  3. permalink

我曾在一家大型跨国组织的咨询工作中工作,该组织生产财务软件,其中确定了需要重写处理从各种平面文件格式导入数据的组件的需求. 处理复杂的业务逻辑和用户定义的映射所需的组件.

之所以选择F#而不是C#,是因为它提供了大量与开箱即用相关的语言功能. 广泛使用了代码引号,区分的联合,部分应用,匹配和活动模式. 默认情况下,对象是不可变的,这使得逻辑非常确定性,易于维护/遵循.

我对结果感到非常满意,尤其是我可以用来描述各种映射及其与其他映射的关系的声明性. 这将使其他开发人员和业务分析人员更容易找出发生特定映射时执行什么逻辑. 核心逻辑大大减少了代码大小,但是,真正节省的是实体特定的映射逻辑,该逻辑使所需的代码行减少了90%以上!

F#绝对是我会推荐给未来客户的一种语言.

映射,解析,商业

 

许多语言都在为将来的发展做准备……F#已经存在.

  1. 亚历克斯·哈德威克
  2. Surge
  3. permalink

当开始使用Microsoft的"现代" WinRT应用程序时,我首先采用了明显的方法并使用了C#. 这行得通,而且我编写了功能良好的应用程序. 尽管如此,使用C#进行现代编程仍存在问题. 在编写BitTorrent应用Surge时遇到了这些问题,最终使用F#重写了该应用. 这样做给我带来了更好的性能,更少的错误和更好的用户满意度.

用户期望具有始终响应的UI的高性能软件,并经常期望这些应用程序能够使用并显示大量数据. 这导致我们作为开发人员使用复杂的数据结构,详细的列表,并使用诸如并行性和异步性之类的技术. C#通过诸如Linq和async / await之类的软件逐渐获得了对这些软件的支持,但是这些对原始F#实现的模仿很差,并且存在缺陷.

使用现代的功能语言为现代开发中我们需要的东西提供一流的支持,这是理所当然的. 不变性作为一种编程技术,比我几乎从未看过的任何其他东西,已修复了我的应用程序中的错误和错误代码,这是C#永远无法获得的.

也不只是C#. 许多语言都在发展,以为将来做好准备,增加了满足现代编程语言需求的功能,但是F#已经存在.

apps, conciseness, torrent, winrt

 

F#使我们能够混合使用域驱动设计,功能编程和Azure来交付高质量的Web应用程序.

  1. 豪尔赫·菲奥拉内利
  2. permalink

网站amancai.com.au是由F#,域驱动设计,Asp.Net MVC和Azure组成的. F#是一个很好的选择,因为它使我们能够保持代码精简和非常实用,同时可以完全访问BCL,Azure和第三方库.

使用F#类型提供程序还帮助我们提高了生产力,并在开发过程的早期发现了问题.

我个人很喜欢使用F#构建整个系统的经验,我相信它的"功能优先"方法非常适合构建广泛的应用程序.

商业,网站,天蓝色,域驱动设计,mvc

 

用F#编程就像写想法而不是代码

  1. 玛丽亚(Maria Gorinova)
  2. permalink

当我开始研究T2时间逻辑证明器时,对终止分析和形式验证一无所知. F#使我能够编写干净,简洁而准确的程序,从而轻松地深入这些概念并提高了我的生产率. 它的功能性质,清晰的语法和类型推断与以命令式风格编写和使用.NET框架的灵活性相结合. 这种结合有力地弥合​​了对概念的思考与实施之间的鸿沟. 用F#编程就像写想法而不是代码.

验证,逻辑,静态分析,终止分析

 

任何开发软件的人都可以理解,虽然工作程序是资产,但是源代码是责任,尤其是在受监管的行业中工作时. F#让我们在提供功能丰富且行之有效的解决方案的同时保持代码库的小巧和敏捷.

  1. 尤金·托尔马切夫(Eugene Tolmachev)
  2. permalink

Prolucid为从医疗设备,航空航天与国防,核能,能源,运输到先进制造等市场的客户提供解决方案.

我们的E2C参考架构是围绕小型F#内核开发的,具有平台独立性,线性可伸缩性和易于定制的特点. F#使我们能够利用我们许多人所拥有的.NET专业知识,并将其与功能性编程的优雅相结合,从而为外部客户提供实时连接,事件处理和复杂的分析解决方案.

我们已经将其中一些工作开源了,您可以在GitHub上找到它.

能源,医疗,斯卡达,游艇,云

 

使用完整的F#堆栈提供服务器,浏览器客户端和移动应用程序.

  1. 最大缺陷
  2. permalink

自从开始编程以来,我测试了许多语言. 我使用PHP,JavaScript,C#,Elm,Lua等.现在我在所有项目中都使用F#. 自从发现F#之后,我就找到了我搜索的语言,只要它有很多可能性.

该语言的工具很棒,而且该语言确实得到社区的支持,我很喜欢.

最后,F#是一种使我真正变得高效的语言,我发现如果编写代码,类型推断将确保我的正确性. 我仍在等待第一个bug出现在我的生产应用程序中.

 

在Grean,我们刚刚推出了基于F#的第三款商业产品

  1. 米克尔·克里斯滕森(Mikkel Christensen),格林
  2. Grean
  3. easyID
  4. Gauss

我们发现F#是一种高生产率的语言,与此同时,让我们创建维护成本较低的代码库.

在C#工作大约7年后,大约3年前我们从C#切换到F#. 而且即使C#当然也可以生产,它也无法接近F#带来的收益. 虽然两种语言都允许创建具有极低缺陷率的系统,但我们发现F#所需的工作量要小得多,但是却能增强信心. 这是由于这样的事实,在许多情况下,我们只能依靠编译器,而不必求助于编写单元测试的分数.

当处理复杂的域时,类型系统确实会带来所有不同. 当将第三方系统集成到多租户公共云产品中时,它也是一个非常强大的盟友:它使我们能够直接以强类型编码非常异构的外部组件.

最重要的是,使用F#感到非常愉快-与我们合作过的其他语言相比,该语言的简洁性和表现力提供了更无干扰的体验. 顺便说一句,我们会注意到,我们对令人上瘾的编译时错误感到惊讶. 即使它们从一开始就令人讨厌,但一旦意识到如何将其用作很多样板单元测试的非常有效的替代方法,它们实际上最终将成为日常工作流程中非常重要(且具有建设性)的一部分.

身份和访问,idaaaas,kyc,azure,nemid,bankid,精益创业

 

在向我们的一个客户发布了复杂的规则引擎和数据转换系统后,我们很高兴听到在90多个市场中,没有一个发现数据集中的任何计算有任何问题. F#可以正常工作.

  1. 艾萨克·亚伯拉罕(Isaac Abraham),合成IT
  2. Compositional IT

作为一家致力于为各个行业的客户提供解决方案的咨询公司,我们所有的解决方案都依赖F#,无论它是规则引擎,Azure上的分布式可伸缩数据转换系统还是面向客户的Web应用程序. 我喜欢这样一个事实,我们对交付的产品充满信心,这在很大程度上要归功于F#使我们失望的成功之道. 我们很少,很少遇到与其他语言和框架有关的错误. 同时,与以往相比,我们能够以更快的速度向客户交付稳定产品-这对于许多经常需要较短时间推向市场的客户来说,是一项重要的价值主张.

天蓝色,咨询,功能编程,上市时间,启动

 

在ClearTax,我们从头开始构建F#的整个产品. 它已经在生产中运行了两年,这对我们来说是一次很棒的经历.

  1. Ankit Solanki, ClearTax
  2. ClearTax

F#的表现力和强大功能缩短了构建周期,简化了业务逻辑(减少了错误!),并具有快速开发产品的能力.

类型提供程序使我们能够快速添加对许多数据格式(政府格式,Excel文件,第三方源)的支持. 模式匹配使简化复杂的业务逻辑成为可能. 使用F#一直很高兴,我们现在在整个产品中越来越多地使用它.

启动,财务,税收,类型提供程序,功能编程

by  ICOPY.SITE