首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏函数式编程语言及工具

    Scalaz(8)- typeclass:Monoid and Foldable

    实际上Monoid的主要用途是在配合可折叠数据结构(Foldable)对结构内部元素进行操作时使用的。 我们再看看这个Foldable typeclass:scalaz/Foldable.scala 1 trait Foldable[F[_]] { self => 2 //// 3 import scalaz为大多数标准库中的集合类型提供了Foldable实例,也就是说大多数scala集合类型都支持这么一堆折叠操作函数。 我还看不到任何需要去自定义集合类型,标准库的集合类型加上Foldable typeclass应该足够用了。 在Foldable typeclass中比较重要的函数就是foldMap了: 1 trait Foldable[F[_]] { self => 2 //// 3 import collection.generic.CanBuildFrom

    1.3K90发布于 2018-01-05
  • 来自专栏若城技术专栏

    12. 快速上手!HarmonyOS4.0 Panel容器组件详解

    Foldable 内容永久展示类,提供大(类全屏)、中(类半屏)、小三种尺寸展示切换效果。 Temporary 内容临时展示区,提供大(类全屏)、中(类半屏)两种尺寸展示切换效果。 PanelMode枚举 名称 描述 Mini 类型为minibar和foldable时,为最小状态;类型为temporary,则不生效。 Half 类型为foldable和temporary时,为类半屏状态;类型为minibar,则不生效。 Full 类全屏状态。 ) { Column() { Text('Minibar效果演示=> Foldable').fontSize(20) } }.type(PanelType.Foldable).mode(PanelMode.Half ) PanelMode.Full 代码示例 Panel(this.FoldableShow) { Column() { Text('Minibar效果演示=> Foldable').fontSize

    25800编辑于 2024-05-26
  • 来自专栏黯羽轻扬

    Monoid_Haskell笔记9

    m foldr :: (a -> b -> b) -> b -> t a -> b (摘自Data.Foldable) P.S.Foldable位于Data.Foldable模块,函数名与Prelude 中的List函数名有冲突,所以一般通过别名引入,例如: import qualified Data.Foldable as Foldable 根据class定义,只需要实现foldMap或foldr即可成为 Foldable实例,从类型声明来看,foldMap显然是面向Monoid的,而foldr则是更一般的fold接口 具体来看,foldMap所做的事情就是用函数a -> m对Foldable结构(t a 好像,是有那么点意思了 继续,实现Foldable接口,还记得Foldable与Monoid关系亲密,所以很容易让一类Monoid实例变得foldable: instance Foldable.Foldable 太容易了: > getSum $ Foldable.foldMap Sum tree 41 > getProduct $ Foldable.foldMap Product tree 90720 > Foldable.foldMap

    1.1K30发布于 2019-06-12
  • 来自专栏Flutter

    Flutter 可折叠边栏

    **我们将实现一个可折叠的侧边栏演示程序,并在flutter应用程序中使用foldable_sidebar包创建一个可折叠的侧边栏导航抽屉。 foldable_sidebar 地址:https://pub.dev/packages/foldable_sidebar 可折叠边栏 这是一个易于使用的软件包,用于向Flutter应用程序添加可折叠的 dependencies: flutter: sdk: flutter foldable_sidebar: ^1.0.0 导入 import 'package:foldable_sidebar /foldable_sidebar.dart'; 执行 flutter packages get 命令。 /custom_sidebar_drawer.dart'; import 'package:foldable_sidebar/foldable_sidebar.dart'; class HomeScreen

    8.5K50发布于 2021-05-11
  • 来自专栏黯羽轻扬

    Monadic Function_Haskell笔记12

    看起来比较迷惑,补全参数后,实际上是这样: \ x ma -> liftA2 (\ flg a -> if flg then (x: a) else id a) (p x) ma foldr :: Foldable foldM foldl对应的monadic版本叫foldM: foldl :: Foldable t => (b -> a -> b) -> b -> t a -> b foldM :: (Foldable f是累加函数 z0是初始值 xs是Foldable实例 z是累加值 x是当前元素 k是? t => (a -> b -> b) -> b -> t a -> b 最难以捉摸的是: (foldr f') :: (Foldable t, Monad m) => (a -> m b) -> t t => (a -> m b) -> t a -> (a -> m b) -- 即 (foldr f') :: (Foldable t, Monad m) => (a -> m b) -> t t1

    1.2K30发布于 2019-06-12
  • 来自专栏函数式编程语言及工具

    泛函编程(22)-泛函数据类型-Monoid In Action

    既然有共性,肯定就会有深度抽象的空间,我们可以把它们抽象表达成一个Foldable[F[_]]:List,Stream,Tree等数据结构类型就是F[_];一个数据结构中封装了一些元素。 这个Foldable类型可以包含各种历遍算法: 1 def endoComposeMonoid[A] = new Monoid[A => A] { 2 def op(f: A => A [A](as: F[A])(m: Monoid[A]): A = { 20 foldLeft(as)(m.zero)(m.op) 21 } 22 } 我们现在已经得到了个Foldable 我们可以试着创建一些Foldable实例看看: 1 object listFoldable extends Foldable[List] { 2 override def foldRight Option的foldable与TreeFoldable很像: 1 object OptionFoldable extends Foldable[Option] { 2 override

    1.3K60发布于 2018-01-04
  • 来自专栏黯羽轻扬

    模块_Haskell笔记2

    t => t Bool -> Bool -- some,有一个为True就True or :: Foldable t => t Bool -> Bool -- 常用的some,List中任意元素满足条件就 True any :: Foldable t => (a -> Bool) -> t a -> Bool -- 常用的every,List中所有元素满足条件才True all :: Foldable t t => t [a] -> [a] -- 先做映射再降维,相当于concat . map concatMap :: Foldable t => (a -> [b]) -> t a -> [b] -- t, Eq a) => a -> t a -> Bool -- 元素包含性检测,是否不包含指定元素 notElem :: (Foldable t, Eq a) => a -> t a -> Bool 查找: -- 按条件查找,返回第一个满足条件的元素 find :: Foldable t => (a -> Bool) -> t a -> Maybe a -- 查找,返回第一个匹配元素索引或Nothing

    2.2K30发布于 2019-06-12
  • 来自专栏函数式编程语言及工具

    泛函编程(26)-泛函数据类型-Monad-Applicative Functor Traversal

    与可折叠类型(foldable type)相比较,traversable类型更加抽象,能覆盖类型更多数据类型。 Foldable类型的map用Monoid实现,但Monoid无法完全实现Traversable类型的map。Traversable类型的map是通过Applicative实现。 Traversable覆盖了Foldable,所以Foldable只是Traversable的其中一种案例。 从表面上来看Traverse应该比Foldable更高效,因为Foldable是通过Monoid来对结构内的元素进行函数施用的,而Applicative比Monoid更强大。 ,而且Traverse类型有比Foldable效率高,那么以后尽量使用Traverse这种类型。  

    1K100发布于 2018-01-05
  • 来自专栏Android技术分享

    三星折叠屏开发者设计指南揭秘

    developer.android.google.cn/guide/topics/resources/runtime-changes 三星开发者网站: https://developer.samsung.com/galaxy/foldable image 3.4 Foldable模拟器测试 模拟器: FoldableEmulator_1.0.1.apk Version:1.0.1 下载地址: https://developer.samsung.com /galaxy/foldable#essentials 仿真测试方法 ? 如何安装运行折叠屏模拟器 1)下载折叠屏模拟器: FoldableEmulator_1.01.apk 可进入下面的网页进行下载: https://developer.samsung.com/galaxy/foldable

    5.7K40发布于 2019-03-27
  • 来自专栏区块链大本营

    七夕送礼很发愁?自己编写一个区块链送女友吧~

    amount :: Integer } deriving (Eq, Show) newtype BlockF a = Block (V.Vector a) deriving (Eq, Show, Foldable Genesis | Node BlockHeader a deriving (Eq, Show, Functor, Traversable, Foldable Genesis Block | Node Block BlockHeader Blockchain 主要原因是获取这些 Functor, Traversable, 与 Foldable BlockChain -> [BlockHeader] headers Genesis = [] headers (_ :< Node x next) = x : headers next average :: (Foldable

    1.2K160发布于 2018-05-10
  • 鸿蒙5开发宝藏案例分享---一多断点开发实践

    # 命令行同时启动多设备hdc shell snapshot_demo -s 1080x2340 -d "Phone"hdc shell snapshot_demo -s 2200x2480 -d "Foldable resources│ ├── breakpoints│ │ ├── phone.ets # 手机专属布局│ │ ├── tablet.ets # 平板布局策略│ │ └── foldable.ets

    31010编辑于 2025-06-03
  • 来自专栏techcrunch

    Microsoft Surface Duo:重新思考智能手机

    larger screens; and that takes us to the Duo, which has twin screens and is very different from the foldable In all three cases, the foldable screen makes the device substantially more efficient. Unlike a foldable phone, however, doing a video using both screens is annoying because of the break in

    68930发布于 2020-12-04
  • 来自专栏向治洪

    android Gradle的几个基本概念

    :support-v4:21.0.2' compile 'com.etsy.android.grid:library:1.0.5' compile 'com.alexvasilkov:foldable-layout

    78690发布于 2018-02-02
  • 来自专栏函数式编程语言及工具

    泛函编程(27)-泛函编程模式-Monad Transformer

    同样,泛函数据类型Foldable,Monoid,Functor,Applicative,Traversable,Monad也是我们将来进入实际泛函编程的必需。 在前面对这些数据类型的探讨中我们发现: 1、Monoid的主要用途是在进行折叠(Foldable)算法时对可折叠结构内元素进行函数施用(function application)、 2、Functor可以对任何高阶数据类型 Applicative可以对所有可游览结构(Traversable),包括可折叠结构(Foldable),嵌入的元素进行函数施用。

    1.5K70发布于 2018-01-05
  • 鸿蒙5开发宝藏案例分享---一多窗口适配开发实践

    类方屏设备强制开启旋转 windowObj.setPreferredOrientation(window.Orientation.AUTO_ROTATION);} else if (deviceType === 'foldable

    30110编辑于 2025-06-03
  • 来自专栏新智元

    入门版9999!华为推出全球最轻折叠屏手机Mate Xs 2

    finpagefr=p_114 https://www.sammobile.com/news/samsung-confirms-new-foldable-smartphones-coming/ https ://www.tomsguide.com/best-picks/best-foldable-phones https://www.zhihu.com/question/530500200

    93050编辑于 2022-04-29
  • 来自专栏鸿蒙开发笔记

    纯血鸿蒙APP实战开发——底部面板嵌套列表滑动案例

    Panel(this.show) { // panel内组件内容}.miniHeight(MINI_PANEL_HEIGHT) // panel最小高度.type(PanelType.Foldable

    33410编辑于 2025-01-08
  • 来自专栏大数据成神之路

    SparkSQL内核解析-执行全过程概述

    下面列举常用Expression: Nondeterministic接口(deterministic=false;foldable=false 具有不确定性的Expression,如Rand()) Unevaluable

    1.2K20发布于 2020-06-01
  • 来自专栏Android 开发者

    大屏幕和折叠屏: 让您的 Android 游戏登上更大的舞台

    上运行的折叠屏模拟器应用,来测试不同窗口大小和像素密度时的运行状况: $ adb install FoldableEmulator.apk $ adb shell pm grant com.samsung.android.foldable.emulator android.permission.WRITE_SECURE_SETTINGS $ adb shell pm grant com.samsung.android.foldable.emulator android.permission.SYSTEM_ALERT_WINDOW 了解有关可折叠设备测试的更多信息 https://developer.samsung.com/galaxy/foldable

    2K20编辑于 2022-09-20
  • 来自专栏旅途散记

    听GPT 讲Rust源代码--compiler(15)

    File: rust/compiler/rustc_macros/src/type_foldable.rs rust/compiler/rustc_macros/src/type_foldable.rs 这个文件是 Rust 编译器(rustc)中的宏定义文件,主要用于实现类型可折叠(type foldable)的功能。 在 type_foldable.rs 文件中,定义了一个宏 define_type_foldable_and_lift,用于实现对类型的折叠操作。 然后,定义了一个宏 lift_type_foldable,用于为语法树节点生成相应的折叠方法。这些折叠方法会调用 super_fold_with 进行类型的遍历和替换。 除了 TypeFoldable 的实现,define_type_foldable_and_lift 还为每个语法树节点生成了对应的折叠方法。

    43410编辑于 2024-03-18
领券