• 请不要在回答技术问题时复制粘贴 AI 生成的内容
pythonee
V2EX  ›  程序员

你遇到过哪些比较难理解的编程语言概念

  •  2
     
  •   pythonee · Sep 3, 2024 · 17174 views
    This topic created in 642 days ago, the information mentioned may be changed or developed.

    我先来:递归 -> Y 组合子 -> Monad

    Supplement 1  ·  Sep 4, 2024
    本来是面向编程语言,但话题扩展,不过也好,补充几个大家提到的
    yield
    协变、逆变
    lisp 的宏
    闭包
    所有权
    cps
    prototype
    大 O 表示法

    非编程语言的
    六边形架构
    reactor 背压
    TCP 粘包
    IO 多路复用
    可计算理论
    Supplement 2  ·  Sep 4, 2024
    C++模板元编程
    Continuation
    Channel
    异步
    并发&内存屏障
    Supplement 3  ·  Sep 5, 2024
    箭头函数
    无栈协程
    Delegate
    asycio
    139 replies    2024-09-06 11:56:44 +08:00
    1  2  
    0x90200
        101
    0x90200  
       Sep 4, 2024
    channel
    0x90200
        102
    0x90200  
       Sep 4, 2024
    go 中的 channel
    mosfet
        103
    mosfet  
       Sep 4, 2024   ❤️ 1
    多重指针吧
    看的头痛
    concernedz
        104
    concernedz  
       Sep 4, 2024
    DDD 这套理解不了
    一直都还是用的 controller->service->impl->model
    pythonee
        105
    pythonee  
    OP
       Sep 4, 2024
    函数指针
    左值右值
    传值、传引用

    虽然不难,但是也需要切换成计算机来思考
    ninjashixuan
        106
    ninjashixuan  
       Sep 4, 2024
    channel 不难吧, 甚至这个逻辑上把 async 改成 sync 模式了我觉得是更好理解吧。
    echoechoin
        107
    echoechoin  
       Sep 4, 2024
    @vfs #3 C 语言都可以返回函数。。。
    csys
        108
    csys  
       Sep 4, 2024
    @Dcrclub 👍这辈子有了
    bugmakerxs
        109
    bugmakerxs  
       Sep 4, 2024
    箭头函数。。
    macscsbf
        110
    macscsbf  
       Sep 4, 2024
    1. atomic
    2. yield
    3. yield + 递归
    yanyoo2000
        111
    yanyoo2000  
       Sep 4, 2024
    上下文。刚学编程的时候困扰我很久
    vfs
        112
    vfs  
       Sep 4, 2024
    @ltyj2003 虽然说 c 语言的函数也能返回一个函数指针, 但是好理解。 类似 golang 之类的函数作为变量到处传,调用, 看着很乱
    vfs
        113
    vfs  
       Sep 4, 2024
    @superhot 其实我是不懂闭包和函数式编程, 我只是在说支持这样的 feature 会让代码的复杂度迅速上升, 不直观。 至于你说 java 怎么实现的, 那是编译器和虚拟机的事儿, 我的代码中不会出现把函数作为返回值或者参数到处传递(但是我在用 java1.8 , 如果新版本有其他特性, 我不知道)
    vfs
        114
    vfs  
       Sep 4, 2024
    @DOLLOR 其实个人也写好几种语言(c++/c,java, golang), 其中 golang 就是支持这种设计的。 我没有说这种东西绝对是坏的, 只是说引入这样的特性, 很容易写出复杂度比较高的代码, 个人是不会写这种代码的(即使语言支持)
    vfs
        115
    vfs  
       Sep 4, 2024
    @qW7bo2FbzbC0 是啊, 这种代码就不容易读, 调试的时候也会更重乱跳,太动态了。
    vfs
        116
    vfs  
       Sep 4, 2024
    @echoechoin 是支持, 但是真的在代码中大量写这种代码,感觉就会很复杂, 代码不容易读。
    HkMuxxx
        117
    HkMuxxx  
       Sep 4, 2024   ❤️ 1
    asyncio
    junwind
        118
    junwind  
       Sep 4, 2024
    @Dcrclub 很有同感,就是故意为之,比如 laravel 框架,什么任务调度,不就是定时任务吗,什么事件监听,不就是一种埋点吗,有些东西,换个名词,就高大上,很多所谓的专家就是吃饱了撑了,故意让你看不懂,然后提升自己的逼格。
    vfs
        119
    vfs  
       Sep 4, 2024
    @jeesk golang 和 cpp 还行,js 还真是学不会
    shijingshijing
        120
    shijingshijing  
       Sep 4, 2024
    @kinkin666 泛型还好,看到 C#后面的委托(Delegate)了吗?
    shiweifu
        121
    shiweifu  
       Sep 4, 2024
    C++ 模板

    可以看看 C++ STL 源码, iostream 、vector 之类的感受一下

    印象中,还有虚指针、虚函数表啥的,C++ 语言特性太多了。当年知难而退,放弃了。

    PS:在咖啡店写代码,对桌的哥们抱着一本砖头厚的 C++ Primer 在做笔记
    kinkin666
        122
    kinkin666  
       Sep 4, 2024
    @shijingshijing 当时没看明白,后面学 java 的时候认识了接口特别是 XxxxxxxListener 之类的事件接口的之后就没它位置了
    Donaldo
        123
    Donaldo  
       Sep 4, 2024
    rust 的宏展开。。
    sanbuks
        124
    sanbuks  
       Sep 4, 2024
    @CREEPER5 本质就是延长右值 (消亡值/纯右值) 生命周期,实现移动语义
    label
        125
    label  
       Sep 4, 2024
    函数式编程 好久才弄明白这玩意, JAVA 仔
    Fallever
        126
    Fallever  
       Sep 4, 2024
    @vfs 函数不能保存成变量有时候才别扭, c#发明了委托, 但它又关联参数类型, 比如你不能把重载函数赋值给原函数委托. 比如 Action<bool> a = Console.Write 它只能绑定 bool 参数的重载. 我想 a= Console.Write(int)啥的都不行...

    还有就是 离开了类就没办法使用函数, 所有的函数都得定义在类里面.
    ysc3839
        127
    ysc3839  
       Sep 4, 2024
    @qbmiller
    Python 的异步 +1
    看上去像是无栈协程,但是用起来却和 JS 或 C++ 的无栈协程有较大区别。
    ysc3839
        128
    ysc3839  
       Sep 4, 2024
    @inhzus C++ 的 coroutine 个人感觉挺好理解的,不涉及 promise type 的话,awaitable 对象其实就类似回调函数,对象被 await 时可以拿到 coroutine handle ,调用这个 handle 即可恢复执行。
    至于 promise type ,很多时候并不需要自己实现,直接用现成的库即可。
    tt67wq
        129
    tt67wq  
       Sep 4, 2024
    python 的这个 async 和 yeild 这些卵子东西
    shantongxu
        130
    shantongxu  
       Sep 4, 2024
    yield, 至今没用过也不懂
    Mandelo
        131
    Mandelo  
       Sep 4, 2024
    @ixx #71 都是 java 的错,这就是 V 站的政治正确 🤣🤣🤣🤣
    snylonue
        132
    snylonue  
       Sep 5, 2024
    dependent type
    msg7086
        133
    msg7086  
       Sep 5, 2024
    点进来之前第一反应 monad 。点进来一看果然 monad 。看满离。
    importmeta
        134
    importmeta  
       Sep 5, 2024
    阀值 阈值
    sampeng
        135
    sampeng  
       Sep 5, 2024   ❤️ 1
    居然没人说面向对象本尊 OOP 。
    诸如凭什么说我抽象的就没你抽的好。。。
    诸如这什么💩抽象,难以理解,看我抽象到极致的抽象。。。
    诸如什么垃圾,套这么多层闹呢。。

    要碰巧看到合自己口味的 OOP 过的代码,简直是奢望。

    一千人有一千种封装抽象。。
    matate
        136
    matate  
       Sep 5, 2024
    最近正好写了几篇文章,方便从程序员角度理解 Monad

    <https://www.vinoca.org/li-jie-dan-zi-shi-zi-han-zi-fan-chou-shang-de-yao-ban-qun-yi/>
    aliipay
        137
    aliipay  
       Sep 6, 2024
    go yield
    aguesuka
        138
    aguesuka  
       Sep 6, 2024
    sound
    decidable
    consistent
    canonicity
    ensonmj
        139
    ensonmj  
       Sep 6, 2024 via iPhone
    @vfs 最近悟了,把他看成匿名类就好多了,但的确不直观
    1  2  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5279 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 150ms · UTC 05:47 · PVG 13:47 · LAX 22:47 · JFK 01:47
    ♥ Do have faith in what you're doing.