1.29
cube :: Double -> Double
cube x = x*x*x
getSum term a next b = if a>b then 0 else term a + getSum term (next a) next b
simpsonIntegral :: (Double -> Double) -> Double -> Double -> Integer -> IO ()
simpsonIntegral f a b n = do print $ (h/3) * (getSum simpson_term 0 (+1) n)
where h = (b-a)/(fromIntegral n)
simpson_term k = t * f (a+(fromIntegral k)*h)
where t | k==0 = 1
| k==n = 1
| odd k = 4
| otherwise = 2
1.30
sum_iter term a next b = iter a 0
where iter x result = if (x>b) then result else iter (next x) (result + term(x))
-- use foldl
sum_iter' term a next b = foldl term' 0 [a,a'..b]
where a'=next a
term' x y = x + (term y)
1.31
-- getPi n = 4* (foldl (\x -> \y -> x* (y*y-1)/(y*y)) 1 [3,5..(2*n+1)])
getProduct term a next b =
if a>b then 1 else (term a)*(getProduct term (next a) next b)
getPi n = 4 * (getProduct piTerm 1 (+1) n)
where piTerm k
| odd k = (fromIntegral (k+1))/(fromIntegral (k+2))
| even k = (fromIntegral (k+2))/(fromIntegral (k+1))
getProduct' term a next b = iter a 1
where iter x p = if (x>b) then p else iter (next x) (p*term(x))
getPi' n = 4 * (getProduct' piTerm 1 (+1) n)
where piTerm k
| odd k = (fromIntegral (k+1))/(fromIntegral (k+2))
| even k = (fromIntegral (k+2))/(fromIntegral (k+1))
1.32
accumulate combiner null_value term a next b = accumulate_iter a null_value
where accumulate_iter x ans = if x > b then ans else accumulate_iter (next x) (combiner (term x) ans)
getSum term a next b = accumulate (+) 0 term a next b
getProduct term a next b = accumulate (*) 1 term a next b
accumulate' combiner null_value term a next b =
if (a>b)
then null_value
else combiner (term a) (accumulate' combiner null_value term (next a) next b)
1.33
fillteredAccumulator combiner null_value term a next b fillter = iter a null_value
where iter x ans = if x>b then ans else iter (next x) (combiner (if fillter x then term x else null_value) ans)
getPositiveSum term a next b = fillteredAccumulator (+) 0 term a next b (\x -> x>0)
1.34 略
1.35
fixedPoint f firstGuess = try firstGuess
where try guess = if (closeEnough guess guess') then guess else try guess'
where guess' = f guess
closeEnough a b = if (abs (a-b) < tolerance) then True else False
where tolerance = 0.00001
goldenRatio = fixedPoint (\x -> 1 + 1/x) 1
1.36~1.46 无聊,略
分享到:
相关推荐
Section 1.3. Features Section 1.4. Downloading and Installing Python Section 1.5. Running Python Section 1.6. Python Documentation Section 1.7. Comparing Python Section 1.8. Other Implementations ...
Section 1.3. Content Model Section 1.4. Layout Section 1.5. Controls Section 1.6. Data Binding Section 1.7. Dependency Properties Section 1.8. Resources Section 1.9. Styles and Control ...
Section 1.3. Network Software Section 1.4. Reference Models Section 1.5. Example Networks Section 1.6. Network Standardization Section 1.7. Metric Units Section 1.8. Outline of the Rest of ...
Section 1.3. Network Software Section 1.4. Reference Models Section 1.5. Example Networks Section 1.6. Network Standardization Section 1.7. Metric Units Section 1.8. Outline of the Rest of ...
Section 1.3. Network Software Section 1.4. Reference Models Section 1.5. Example Networks Section 1.6. Network Standardization Section 1.7. Metric Units Section 1.8. Outline of the Rest of the ...
Section 1.3. Network Software Section 1.4. Reference Models Section 1.5. Example Networks Section 1.6. Network Standardization Section 1.7. Metric Units Section 1.8. Outline of the Rest of ...
Section 1.3. Network Software Section 1.4. Reference Models Section 1.5. Example Networks Section 1.6. Network Standardization Section 1.7. Metric Units Section 1.8. Outline of the Rest of ...
Section 1.3. Network Software Section 1.4. Reference Models Section 1.5. Example Networks Section 1.6. Network Standardization Section 1.7. Metric Units Section 1.8. Outline of the Rest of ...
Section 1.3. Network Software Section 1.4. Reference Models Section 1.5. Example Networks Section 1.6. Network Standardization Section 1.7. Metric Units Section 1.8. Outline of the Rest of ...
Section 1.3. Protocol Independence Section 1.4. Error Handling: Wrapper Functions Section 1.5. A Simple Daytime Server Section 1.6. Roadmap to Client/Server Examples in the Text Section 1.7. ...
Section 1.3. A Simple Testing Ground Chapter 2. Grammar Section 2.1. Whitespace Section 2.2. Names Section 2.3. Numbers Section 2.4. Strings Section 2.5. Statements Section 2.6. Expressions ...
Section 1.3. Open Source and the GPL Section 1.4. Standards and Relevant Bodies Section 1.5. Chapter Summary Chapter 2. Your First Embedded Experience Section 2.1. Embedded or Not? Section 2.2. ...
Section 1.3. But Wait! There's More! Chapter 2. Basic Network Concepts Section 2.1. Networks Section 2.2. The Layers of a Network Section 2.3. IP, TCP, and UDP Section 2.4. The Internet ...
蓝牙技术自1994年由爱立信公司首次提出以来,已经发展成为无线通信领域的重要技术,广泛应用于个人电子设备之间的无线连接。蓝牙核心规格是定义蓝牙技术规范的官方文件,而蓝牙核心协议6.0即Bluetooth Core ...
Section 1.3. Overview of Internet Protocols Section 1.4. Summary Chapter 2. The Internet Protocol and Routing Section 2.1. Addressing Section 2.2. IP Datagram Header Section 2.3. Routing ...
Section 1.3. Resources for Developers Using Stored Programs Section 1.4. Some Words of Advice for Developers Section 1.5. Conclusion Chapter 2. MySQL Stored Programming Tutorial Section 2.1. ...
Section 1.3. Terminology Section 1.4. Notation Section 1.5. Primer on Networking Section 1.6. Active vs. Passive Attacks Section 1.7. Layers and Cryptography Section 1.8. Authorization ...