07 2023 档案
摘要:分支选择 F#中的match语句是一个强大的工具,它可以用来匹配各种各样的模式。match语句的一般形式如下: match expression with | pattern1 [when condition1]-> result1 | pattern2 [when condition1] -> r
阅读全文
摘要:Mergesort mergesort是一个典型的分而治之、迭代的算法。它将一个数组分成两个子数组,分别排序,然后将有序的子数组归并为一个有序的数组。归并操作是将两个有序数组归并成一个有序数组的过程。 mergesort的时间复杂度为O(nlogn),最佳和最坏情况下的时间复杂度都是O(nlogn)
阅读全文
摘要:Java桌面技术 Java桌面技术是Java语言的一个重要应用领域,它的主要特点是跨平台,即一次编写,到处运行。Java桌面技术主要包括JavaFX和Swing两种技术。 最开始的时候,在Swing之前,Java还有Applet和AWT两种技术,但是这两种技术已经被淘汰(?),所以这里不再介绍。 我
阅读全文
摘要:F#还能干点啥 距离上一次更新已经过去了很久(40分钟之久!),这段时间我在学习F#,并且在工作(划掉,躺肥并没有工作要做)中使用F#。 那干点啥呢?还是老本行吧,搞点飞行力学。 有一个球(质点),在一维平面大地、真空两个假设条件下,以一定的初始速度和初始角度抛出,求其运动轨迹。什么?这也是飞行力学
阅读全文
摘要:面向对象编程掉书袋 Object-oriented programming (OOP) is a programming paradigm that uses abstraction to create models based on the real world. It uses several
阅读全文
摘要:WPF but F# 上一篇,写了一个F#的WPF,所有的东西都是随手写出来的,没有经过详细考虑和设计。就是吧,一点也不优雅……咋们虽然头发不多,但是优雅永不过时! 实际上能用的开源UI库(F#,WPF)有两个: Avalonia.FuncUI Elmish.WPF 本文旨在学习F#,因此不使用任何
阅读全文
摘要:WPF中的绑定 绑定在UI开发中是一个非常重要的概念,它可以让我们的UI界面和数据模型之间建立起联系,当数据模型发生变化时,UI界面也会随之变化,反之亦然。这样的好处是显而易见的,我们不需要手动去更新UI界面,而是让数据模型自己去更新UI界面,这样的代码更加简洁,更加易于维护。 在传统的UI开发中,
阅读全文
摘要:F# 代码风格 这玩意有两点不能忘记,第一点这是很高级的内容,不要相信那些要求你一开始学习F#就要这样就要那样;第二点,这些内容根据不同的项目和不同的组织时时长变动的,并没有什么一定要遵循的准则。基于这两点认知(这两点是认知吗?是的),这是高级要求,这是项目实施的特定要求,该怎么做呢? 知道有这个事
阅读全文
摘要:核越多,越快乐 多核CPU对于计算机程序的开发带来了很大的挑战,但是也带来了很大的机遇。在多核CPU上,程序的性能可以通过并行化来提升,但是并行化的难度也随之提升。本文将介绍多核CPU的基本概念,以及如何在多核CPU上进行并行化编程。 此外,Web应用、GUI应用中广泛存在的响应式编程也代表了系统规
阅读全文
摘要:Break return但是函数 今天看到一篇讲F#计算表达式的文章F#计算表达式Head First:循环中实现Break return (一),文章把自定义计算表达式结构写得很清楚,文笔清新。 但是这个在循环中实现Break return的概念一下击中了我已经完全函数式编程化(就是最近的事情!)
阅读全文
摘要:短处和长处 #比烂# #短板效应# #接受自我# 年轻时总有一种很理想化的想法,成为一个完人。 这种想法一般是家长和学校造成的,一般总会找到你的缺点让你改正。我记得当时还有著名的短板理论,所谓一个木桶装水是由最短的那块板决定的。 我曾经也很困扰。知道快30岁、结婚好多年后才明白。短板不短板的,吃一碗
阅读全文
摘要:最近刚参与一位大佬的重要文本撰写,也就3000字,磨了有几个月。 收获很多。关于技术写作,要写透,要写简单;要舍得放弃。 写透看起来简单,其实是最难的。一般人看到有字数限制就拼命压缩文本,把(自己觉得)重要的东西全部堆上来,最终是全文多半是半截子话(没说透)、难以理解的话(为了压缩字数采取了更难理解
阅读全文
摘要:这是个什么鬼 好吧,我也是学过C语言的骨灰程序员,看到下面的代码,我也是大受震撼的。还能这么玩? type Shape = | Circle of radius: float | Rectangle of width: float * height: float 这样的话,能玩的就多了。比如比较简单
阅读全文
摘要:F#绘图 如果Python没有Matplotlib,R没有ggplot,Matplab没有plot函数……就像阿珍爱上了阿强,能画图的脚本才是好脚本。当然,F#有画图包,但是F#在数据处理中的地位就像下面,这也是我们没办法的。 ScottPlot是一个基于.NET的绘图包,支持C#和F#,支持Win
阅读全文
摘要:F#的计量单位 从各个意义上,都可以说计量单位很重要。度量衡的统一是社会化大生产和市场交换的基石。这句正确的废话跟F#没有半毛钱的关系,直到我看帮助看到了这个: [<Measure>] type m let l = 1<m> 脑袋顿时秃起来哦不兴奋起来。仔细看了看几个帖子,发现这个东西是F#的一个特
阅读全文
摘要:性能测试 作为一个不事生产和创造但是热爱学习和思考的编程爱好者,最喜欢看和最喜欢做的通常都是比来比去、拉拉扯扯,所以性能测试是必不可少的。 你看那些云玩家、云车神、云计算爱好者,孜孜不倦的都到处看评测报告,动手能力强的都在写评测报告。这就是我的观点:不能让人做决策,也要让人感觉自己在做决策。因为智人
阅读全文
摘要:For循环 在F#中,for循环的语法如下: for <identifier> = <start> to <end> do <body> 但是所有函数式编程语言都不鼓励使用for循环,而是使用递归来实现循环。 for循环的一个常见用法是遍历一个数组,例如: let arr = [|1; 2; 3;
阅读全文
摘要:F#到底有什么用? 奇妙游写到第五篇,前面的几篇都是开场白: 一个用F#编写WinForm的例子donet命令行工具,也就是F#的开发环境关于函数和函数式编程的碎碎念函数式编程的核心概念:值 下面,我们开始正式来搞点事情,看看F#能做些什么。在此之前,我们再复习F#的运行环境。 F# Interac
阅读全文
摘要:let关键词 如果熟悉其他语言,你可能会认为let关键词是用来声明变量的。但在F#中,let关键词是用来声明值的。值是不可变的,而变量是可变的。(注:在F#中,变量是用关键词mutable来声明的。)值的概念,是函数式编程中的一个重要概念。值和变量的区别,是函数式编程和命令式编程的一个重要区别。变量
阅读全文