小编Rob*_*ham的帖子

将镜头使用与数据库访问协调

我最近一直在玩镜头,发现它们非常适合它们的预期用途 - 挖掘复杂的数据结构.但我最欣赏他们的一个领域是数据库访问(特别是sqlite,但我认为我的问题推广到大多数数据库),但我看不出任何方法来编写不会牺牲很多钱的镜头性能或粒度.

如果我从DB到表,从表到行,从行到列编写镜头(或者我认为可能是Prism,根据NULLable字段?),那么每个步骤都会导致数据库访问,意味着应该是一次访问至少4.

在另一方面,如果我的目标是地图DB访问1:1与透镜/棱镜的用途,我得到大做,一切镜头不能被分解成更小的碎片时,我希望只看到是什么列在表格中,等等.

使用具有DB的镜头是否有意义,如果是这样,我错过了一种明显的方法来避免重复工作以避免不必要的DB访问?

haskell lenses haskell-lens

13
推荐指数
1
解决办法
521
查看次数

在C中连接路径有什么好的,跨平台的方法?

目前,我有一个path_concat(char* path_fragment_a, char* path_fragment_b)功能,它只是串接在一起path_fragment_a,PATH_DIVIDERpath_fragment_b.(PATH_DIVIDER在#ifdef块中是#defined,所以它\在Windows和/其他任何地方.)

但我不禁想到这似乎:

  • 有点像kludge.
  • 必须由一个相当常见的库覆盖的东西,如果可用的话会更好用,所以我不会重新发明轮子.

谷歌搜索它只是发现了很多关于Python的结果os.path.join(这将是理想的,除了它的Python,而不是C),所以我想知道是否有人知道更清洁/更标准的解决方案.

c cross-platform concatenation path

4
推荐指数
1
解决办法
1101
查看次数

标签 统计

c ×1

concatenation ×1

cross-platform ×1

haskell ×1

haskell-lens ×1

lenses ×1

path ×1