Jeff's World

Things that I'm interested in

53
文 章
2
分 类
70
标 签

Haskell学习-高阶函数

高阶函数(higher-order function)就是指可以操作函数的函数,即函数可以作为参数,也可以作为返回结果。有了这两个特性,haskell可以实现许多神奇的效果。

柯里化(Currying)

在haskell中所有的算术运算符都是函数(包括大小于等于关系符等),而它们的快捷方式都可以省略操作数(参数)。

(+) 1 2 -- (+) 是需要两个操作数的函数
> 3

(+1) 2 -- (+1) 是需要左操作数的函数
> 3

(3*) 3 -- (3*) 是需要右操作数的函数
> 6

map (*2) [1,2,3] -- map所有元素 *2 的操作
> [2,4,6]

filter (>3) [2,3,4,5] -- 过滤 >3的元素
> [4,5]
more

Haskell学习-函数式编程初探

为什么要学习函数式编程?为什么要学习Haskell?

.net到前端,C#和JavaScript对我来说如果谈不上精通,最起码也算是到了非常熟悉的程度。这两门语言就像是我的盾牌和宝剑,给我保驾护航,开山劈石,伴随着我不断成长。同时C#和JavaScript它们本身也在不断地进化,不断出现越来越多方便的语法糖,但追根到底很多都是从函数式语言汲取的精华。比如高阶函数,lambada表达式,柯里化等。

于是从探险的角度,以好奇的心态开始学习函数式语言,探索这个宝库,拾取可供临摹的珍宝。最起码它能让你多一个不同的角度看待编程语言,影响你的思考方式。 学习的对象当然选择函数式语言的集大成者-Haskell。

more

WebGL展示3D房屋内景

由于生活和工作上的原因,从年前开始一直到处奔波,没有太多的时间去关注和学习WebGL图形学相关的技术, 不过陆陆续续都有学习使用blender进行3D建模, 而这篇文章涉及到的房屋内景3D建模就是我这段时间以来的学习成果,现在展示出来.

本节实现的效果: Room

more

重返喜马拉雅之尼泊尔ACT篇

  一年后重返喜马拉雅南坡的尼泊尔, 重回那片无数次在我梦里萦绕的壮丽辽阔的高山和雪原, 这次是探寻安娜普尔纳保护区(Annapurna Conservation Area, ACA), 徒步排名世界第一的安娜普尔纳大环线(Annapurna Circuit Trek, ACT), 然后从ACT终点Poon Hill开始重走ABC(Annapurna Base Camp), 最后欣赏冬天雪花飞舞的安娜普尔纳大本营, 所以这次徒步其实是ACT + Poon Hill + ABC组合起来的超级大环线.

2016年喜马拉雅之旅请看:
喜马拉雅之旅(西藏篇)
喜马拉雅之旅(尼泊尔ABC篇)
喜马拉雅之旅(尼泊尔EBC篇)

more

WebGL光照阴影映射

经过前面的学习,webgl的基本功能都已经掌握了,我们不仅掌握了着色器的编写,图形的绘制,矩阵的变换,添加光照,还通过对webgl的基础api封装,编写出了便利的工具库. 是时候进一步深入学习webgl的高级功能了,我认为要做逼真的3D特效,阴影绝对是一个必不可少的环节.现在我们就在之前光照的基础上添加阴影效果吧.

首先看一下阴影效果的实例:
阴影综合(多物体高精度PCF)
点光源聚光灯阴影

more

WebGL多模型光照综合实例

WebGL是一个非常的接近硬件底层的光栅化API, 从非常类似C/C++风格的API调用方式就可以看出来, 习惯了高级语言的我们会觉得很不友好,觉得特别繁琐. 这个也是很多人觉得WebGL难的原因之一. 如果我们要使用WebGL做一些项目,毫无疑问要么使用Three.js之类的3D库, 要么需要对原生的API进行封装. 这段时间查看了一些WebGL工具库的源代码, 参考封装出了一个简单的工具库,这样往后用WebGL做小项目就方便多了.

经过前面章节的学习, WebGL的知识点掌握的差不多了, 终于到了做特效和Demo的阶段了,来看一下这节实现的特效:WebGL多物体多光源场景

more

WebGL学习(3) - 3D模型

相信很多人是以创建逼真酷炫的三维效果为目标而学习webGL的吧,首先我就是😂。我掌握了足够的webGL技巧后,正准备大展身手时,遇到了一种尴尬的情况:还是做不出想要的东西😭。为啥呢,因为没有3D模型可供操作啊,纯粹用代码构建复杂的3D模型完全不可想象。

必须使用3dMax,maya,以及开源的blender等建模软件进行构建。既然已经入了webGL的坑了,那也只能硬着头皮继续学习3D建模,断断续续学了一个多月的blender教程,总算入门了。

这节主要学习如何导入模型文件,然后用代码应用效果,操作模型。首先展示下我的大作,喷火战斗机的3D模型:webGL 喷火战斗机

more

NodeJS网络爬虫

网上有很多其他语言平台版本的网络爬虫,比如Python,Java。那怎么能少得了我们无所不能的javascript呢😂?这个和之前给产品狗开发的批量图片下载配置工具,原理很相似,核心就是调用Node的http模块。

网络爬虫基本就由如下部分组成:

  1. 程序入口

  2. 请求模块

  3. 数据解释

more

简洁后台管理模版

之前给客户开发一个简单的后台管理系统,本来准备套用AdminLTE的,但客户嫌弃太臃肿,而且又需要有多tab页面切换,于是从我代码库中找到好久前就写过的管理后台,根据需求重写。这是基于jQuery,加上自己编写基础样式,从零搭建起来的框架,在这个轻量级模版的基础上进行开发vue项目。现在顺便将这个模版搭建成我的前端demo的管理系统,而这篇文章就讲述下如何实现简单的后台管理系统。

more

扫一扫,分享到微信

Powered by Hexo Theme simply

Copyright © 2025 Jeff Zhong

给我的早餐加个蛋吧 😊

weixinpay alipay