I recently saw an interview with Dave Thomas on TSS. He mentioned the Haskell language. I saw it very attractive. Many of the famous American universities begin with functional Language LISP, but I feel that lisp is not easy to learn. Looking at the brackets, I feel dizzy. Haskell is easy to get started, the language is named after a computer scientist.
Compared with the quick sorting in the upper-right c
Today, let's meet Yesod-bin.Take the following installation steps from a clean environment, for example in Windows
Install Haskell-platform (you can manually install cabal and GHC)
to update cabal. Cabal Update
updates caball-install. Cabal Install–global Cabal-install Remember to take the global parameter, otherwise your update is only in the current cabal environment, and there is nothing luan to switch to a directory with
Y-conbinator "Is there any use"? No, in most of the languages that support functional programming, you are free to use recursion, and the goods are scattered in the flesh and blood of functional programming as theoretical cornerstones. This is a math note, which is a math note, which is a math note, and the computer has no relationship with half a dime, Important words to say three times (fled 1.λ-calculus Turing's life opened a lot of brain holes, of which λ-calculus is one of them. (Turing sai
Listen to Mr Joe's function on Tuesday afternoon.ProgramDESIGN: After giving Haskell an example, we can see only four people, so we will not talk about it simply...
So I found the Getting Started tutorial ..
Five steps to get started with Haskell
It seems that the indentation of Haskell is similar to that of Python, which saves many brackets of scheme. But the
Talk about my own background, I am a dabbler programmer, do anything like to know more and try again, I have been exposed to many languages, most of them as tools to useMost of my work now lies in data mining and machine learning, and web development, and the first language I've worked with is Python, where I learned about the concept of functional programming.Speaking of Lisp is said to be a copy of Lisp Python, and learned that the language is from the hacker and painter This book, is said to
Tuesday afternoon to listen to the function of Joe Teacher program design, gave a Haskell example, see only four people, simply do not speak ...
So I found an introductory tutorial to see.
Haskell Five steps to get started
The feeling of Haskell indentation and Python's image saves the heavy brackets of scheme, but the elegant prefix expression doesn't work.
Download location: ftp://ftp.gnu.org/gnu/emacs/windows/
Configuration: There are many configuration files online. The configuration file name is. emacs, in the path c: \ Users \ *** (username) \ appdata \ roaming, can be directly modified in this file without the need to modify the registry, so it is troublesome to get environment variables.
At the beginning, my Emacs
Data
ListLike an array in C, you can only save data of the same type.Two basic operations + + and:, + + for connecting two lists of course two list values must be of the same type: cons, used to construct the list, the first element must be a value, cannot be a list
StringYou can see that the top and bottom results are identical, "denotes characters," "denotes strings, and C uses a pointer array to represent strings, and Haskell's string is a list of characters, so all operations of the
In Haskell, functions are generally performed using prefixes. But there is a way to change the prefix to infix.All we need to do is wrap the function together, and we can turn a function with 2 parameters into infix form.Prelude> "A" ' Notelem ' ["B"] true prelude> Notelem "a" ["B"] Truefunction infix, not only can have 2 parameters of the function into infix form, can also be more than 2 functions into infix form.But it looks pretty ugly.Prelude> FOL
I accidentally found this black hole question in the blog Park, which is suitable for Haskell practice. I tried to implement it with Haskell.
Original question description:
Sort the four numbers in a four-digit manner into a new number and a new number in a large to small arrangement. Then, the two numbers are subtracted and repeat this step, as long as the four digits in four digits are not repeated, t
In fact, this difference is just like the difference between a common function and a higher-order function. Isn't that easy to understand? Well, if you say you don't know what a high-order function is, don't read this article. Let's take a look at how I compared them.
Let's take a look at how EQ is defined in Haskell. I call it "normal typeclasses" (to distinguish the functor typeclasses, I call it P ), here we define a typeclasses and define an acti
After emcas is started, the. emacs file is first loaded, which is in the home directory. For Linux, the home directory is your user directory. You can use "CD ~ "Command to enter this directory; for Windows, you need to configure the home directory in the environment variable options (my computer-> properties-> advanced-> environment variables ).
Some people love Emacs and learn lisp for it, just to make
The key labeled in the command, the uppercase C for control, the keyboard is usually the CTRL key, and M for Meta, on the keyboard is usually the ALT key, S is the shift, on the keyboard is usually the SHIFT key, that is:C--->control M--->alt s-->shiftThese three keys in Emacs are usually used as the leading key combination, that is, you may need to hold down the key before executing a command, such as the Search command is c-s, to execute this comman
Today I wrote a Haskell code, and found that let sometimes need to add in, sometimes do not need to add in. The main reason for this is the Do code block. Do {let And the rest of the time you need to use in. What do I do if I want let to use in the Do code block? Dolet x = in Foo x Indentation is required because the indentation of Haskell is meaningful. OK, and then say a question about let indentation. F
Because I have proofread and edited it multiple times, I can see myArticleThere is no excitement when I appear in a magazine. In addition, the content of my work has also changed recently.ProgramMember. I am much more busy than before, so I have little time to focus on development. However, I can regard programs as a hobby and a tool for daily work. I can use what I like more purely.
Now, I often write one or two lines of shell or Python scripts to treat my computer as my own robot and do some
YesodYesod is a WEB framework that uses the Haskell language.Installing YesodFirst update Haskell Platform to the latest version(Yesod relies on a lot of libraries, the version is inconsistent, it is easy to install failure)$ cabal install yesodInstalled yesod-1.4.5Hello World-- helloworld.hs{-# LANGUAGE OverloadedStrings #-}{-# LANGUAGE QuasiQuotes #-}{-# LANGUAGE TemplateHaskell #-}{-#
Environment used: Windows Server 2008 + GHC 7.6.3 (Haskell Platform 2013.2.0.0 Self-band) + Pandoc 1.12.4
Operation Steps:
1. Install Haskell Platform, download address: http://www.haskell.org/platform/.
2. Install pandoc, install command: Cabal install Pandoc
3. Run ghci on the command line
4. Refer to the corresponding module of Pandoc and run at the Prelude command prompt:
: module Text.pandoc T
From: http://www.engr.uvic.ca /~ Dastone/emacs-keys.htmlEmacs keyboard shortcuts
File
Open
CTRL-X, Ctrl-F
Save
CTRL-X, Ctrl-S
Save
CTRL-X, Ctrl-W
Save all
CTRL-X, S
Revert to file
CTRL-X, Ctrl-V
Revert Buffer
Meta-X, revert-Buffer
Close Window/Buffer
CTRL-X, K
Quit
CTRL-X, Ctrl-C
Edit
Undo
CTRL
0 reply content: No!
First, the list of Python is different from the list of Haskell .. The latter is a linked list, and the former is a dynamic array ..
Then the implementation of Haskell's list comprehension relies on converting to map/filter (fusion optimization is not considered), and finally implementing it through recursion; the implementation of list comprehension in Python depends on the _ iter _ method (that is, the meaning of the itera
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.