小编Gor*_*ord的帖子

Haskell 映射直到满足第一个条件

我只想在通过的第一项上映射条件函数。

map (>5) [1,2,3,4,5,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)

会导致

[False,False,False,False,False,True,True,True,True]
Run Code Online (Sandbox Code Playgroud)

我正在寻找会导致

[False,False,False,False,False,True,False,False,False]
Run Code Online (Sandbox Code Playgroud)

所以只有第一次出现大于 5 的结果为 True。我尝试了扫描,各种折叠,并尝试滚动我自己的 mapUntil 之类的东西。似乎是一个简单的问题,但我正在画一个空白。

haskell

8
推荐指数
1
解决办法
490
查看次数

Haskell:为什么 usleep + 线程编译选项比 threadDelay 更精确?

我在 Raspberry Pi 上用 Haskell 编写了一个测试程序,该程序在连接到 GPIO 引脚的蜂鸣器上播放令人愉悦的曲调。

这是我使用的进口:

import qualified Control.Concurrent as C
import qualified Control.Monad as M
import System.IO
import qualified System.Posix.Unistd as P
Run Code Online (Sandbox Code Playgroud)

以下是通过写入 /sys/class/gpio/gpio16/value 文件来切换引脚的函数:

changePin2 :: Handle -> String -> Int -> IO ()
changePin2 handle onOff delay = do
  pos <- hGetPosn handle
  hPutStr handle (onOff ++ "\n")
  hFlush handle
  hSetPosn pos
  P.usleep delay
  --C.threadDelay delay

blinkOn2 :: Handle -> Int -> IO ()
blinkOn2 handle delay = do
  changePin2 handle "1" delay
  changePin2 …
Run Code Online (Sandbox Code Playgroud)

haskell usleep raspberry-pi

5
推荐指数
1
解决办法
211
查看次数

标签 统计

haskell ×2

raspberry-pi ×1

usleep ×1