fonsp / Pluto.jl

🎈 Simple reactive notebooks for Julia
https://plutojl.org/
MIT License
4.94k stars 285 forks source link

UndefVarError: a function reference inside of structure #997

Closed mmikhasenko closed 3 years ago

mmikhasenko commented 3 years ago

image

code

import Pkg
Pkg"add https://github.com/mmikhasenko/AlgebraPDF.jl"
#
using AlgebraPDF
#
f1(x) = x^2
d = pdf((x;p)->f1.(x), ∅, (2,6))
d.f(1.1; p=∅)

Something known?

fonsp commented 3 years ago

Here is the error printed in the terminal:

┌ Error: Unknown lambda type
└ @ Pluto.ExpressionExplorer ~/Documents/Pluto.jl/src/analysis/ExpressionExplorer.jl:488
┌ Error: Expression explorer failed on: 
│   ex =
│    :($(Expr(:toplevel, :(#= /Users/fons/.julia/pluto_notebooks/Wonderful analysis 6.jl#==#5080c0a8-8567-11eb-15d7-8dae73d9432e:1 =#), :(pdf((begin
│                  x
│                  #= /Users/fons/.julia/pluto_notebooks/Wonderful analysis 6.jl#==#5080c0a8-8567-11eb-15d7-8dae73d9432e:1 =#
│                  p
│              end->begin
│                  #= /Users/fons/.julia/pluto_notebooks/Wonderful analysis 6.jl#==#5080c0a8-8567-11eb-15d7-8dae73d9432e:1 =#
│                  f1.(x)
│              end), ∅, (2, 6))))))
└ @ Pluto.ExpressionExplorer ~/Documents/Pluto.jl/src/analysis/ExpressionExplorer.jl:974
MethodError: no method matching iterate(::Nothing)
Closest candidates are:
  iterate(::Union{LinRange, StepRangeLen}) at range.jl:664
  iterate(::Union{LinRange, StepRangeLen}, ::Int64) at range.jl:664
  iterate(::T) where T<:Union{Base.KeySet{var"#s77", var"#s76"} where var"#s76"<:Dict where var"#s77", Base.ValueIterator{var"#s75"} where var"#s75"<:Dict} at dict.jl:693
  ...
Stacktrace:
  [1] explore!(ex::Expr, scopestate::Pluto.ExpressionExplorer.ScopeState)
    @ Pluto.ExpressionExplorer ~/Documents/Pluto.jl/src/analysis/ExpressionExplorer.jl:491
  [2] (::Pluto.ExpressionExplorer.var"#31#37"{Pluto.ExpressionExplorer.ScopeState})(a::Expr)
    @ Pluto.ExpressionExplorer ~/Documents/Pluto.jl/src/analysis/ExpressionExplorer.jl:624
  [3] MappingRF
    @ ./reduce.jl:93 [inlined]
  [4] _foldl_impl(op::Base.MappingRF{Pluto.ExpressionExplorer.var"#31#37"{Pluto.ExpressionExplorer.ScopeState}, Base.BottomRF{typeof(union!)}}, init::Pluto.ExpressionExplorer.SymbolsState, itr::Vector{Any})
    @ Base ./reduce.jl:58
  [5] foldl_impl
    @ ./reduce.jl:48 [inlined]
  [6] mapfoldl_impl(f::Pluto.ExpressionExplorer.var"#31#37"{Pluto.ExpressionExplorer.ScopeState}, op::typeof(union!), nt::Pluto.ExpressionExplorer.SymbolsState, itr::Vector{Any})
    @ Base ./reduce.jl:44
  [7] mapfoldl(f::Function, op::Function, itr::Vector{Any}; init::Pluto.ExpressionExplorer.SymbolsState)
    @ Base ./reduce.jl:160
  [8] explore!(ex::Expr, scopestate::Pluto.ExpressionExplorer.ScopeState)
    @ Pluto.ExpressionExplorer ~/Documents/Pluto.jl/src/analysis/ExpressionExplorer.jl:624
  [9] explore!(ex::Expr, scopestate::Pluto.ExpressionExplorer.ScopeState)
    @ Pluto.ExpressionExplorer ~/Documents/Pluto.jl/src/analysis/ExpressionExplorer.jl:377
 [10] (::Pluto.ExpressionExplorer.var"#31#37"{Pluto.ExpressionExplorer.ScopeState})(a::Expr)
    @ Pluto.ExpressionExplorer ~/Documents/Pluto.jl/src/analysis/ExpressionExplorer.jl:624
 [11] MappingRF
    @ ./reduce.jl:93 [inlined]
 [12] _foldl_impl(op::Base.MappingRF{Pluto.ExpressionExplorer.var"#31#37"{Pluto.ExpressionExplorer.ScopeState}, Base.BottomRF{typeof(union!)}}, init::Pluto.ExpressionExplorer.SymbolsState, itr::Vector{Any})
    @ Base ./reduce.jl:62
 [13] foldl_impl
    @ ./reduce.jl:48 [inlined]
 [14] mapfoldl_impl(f::Pluto.ExpressionExplorer.var"#31#37"{Pluto.ExpressionExplorer.ScopeState}, op::typeof(union!), nt::Pluto.ExpressionExplorer.SymbolsState, itr::Vector{Any})
    @ Base ./reduce.jl:44
 [15] mapfoldl(f::Function, op::Function, itr::Vector{Any}; init::Pluto.ExpressionExplorer.SymbolsState)
    @ Base ./reduce.jl:160
 [16] explore!(ex::Expr, scopestate::Pluto.ExpressionExplorer.ScopeState)
    @ Pluto.ExpressionExplorer ~/Documents/Pluto.jl/src/analysis/ExpressionExplorer.jl:624
 [17] compute_symbolreferences(ex::Expr)
    @ Pluto.ExpressionExplorer ~/Documents/Pluto.jl/src/analysis/ExpressionExplorer.jl:956
 [18] try_compute_symbolreferences(ex::Expr)
    @ Pluto.ExpressionExplorer ~/Documents/Pluto.jl/src/analysis/ExpressionExplorer.jl:972
 [19] |>
    @ ./operators.jl:839 [inlined]
 [20] #65
    @ ./none:0 [inlined]
 [21] iterate(::Base.Generator{Vector{Pluto.Cell}, Pluto.var"#65#66"})
    @ Base ./generator.jl:47
 [22] Dict{Pluto.Cell, Pluto.ReactiveNode}(kv::Base.Generator{Vector{Pluto.Cell}, Pluto.var"#65#66"})
    @ Base ./dict.jl:103
 [23] updated_topology(old_topology::Pluto.NotebookTopology, notebook::Pluto.Notebook, cells::Vector{Pluto.Cell})
    @ Pluto ~/Documents/Pluto.jl/src/evaluation/Update.jl:20
 [24] update_save_run!(session::Pluto.ServerSession, notebook::Pluto.Notebook, cells::Vector{Pluto.Cell}; save::Bool, run_async::Bool, prerender_text::Bool, kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Pluto ~/Documents/Pluto.jl/src/evaluation/Run.jl:161
 [25] response_run_multiple_cells(🙋::Pluto.ClientRequest)
    @ Pluto ~/Documents/Pluto.jl/src/webserver/Dynamic.jl:364
 [26] process_ws_message(session::Pluto.ServerSession, parentbody::Dict{Any, Any}, clientstream::HTTP.WebSockets.WebSocket{HTTP.ConnectionPool.Transaction{Sockets.TCPSocket}})
    @ Pluto ~/Documents/Pluto.jl/src/webserver/WebServer.jl:357
 [27] (::Pluto.var"#179#189"{Pluto.ServerSession, Base.RefValue{Function}})(clientstream::HTTP.WebSockets.WebSocket{HTTP.ConnectionPool.Transaction{Sockets.TCPSocket}})
    @ Pluto ~/Documents/Pluto.jl/src/webserver/WebServer.jl:165
 [28] upgrade(f::Pluto.var"#179#189"{Pluto.ServerSession, Base.RefValue{Function}}, http::HTTP.Streams.Stream{HTTP.Messages.Request, HTTP.ConnectionPool.Transaction{Sockets.TCPSocket}}; binary::Bool)
    @ HTTP.WebSockets ~/.julia/packages/HTTP/cxgat/src/WebSockets.jl:160
 [29] upgrade
    @ ~/.julia/packages/HTTP/cxgat/src/WebSockets.jl:142 [inlined]
 [30] (::Pluto.var"#178#188"{Pluto.ServerSession, Base.RefValue{Function}, HTTP.Handlers.Router{Symbol("##245")}})(http::HTTP.Streams.Stream{HTTP.Messages.Request, HTTP.ConnectionPool.Transaction{Sockets.TCPSocket}})
    @ Pluto ~/Documents/Pluto.jl/src/webserver/WebServer.jl:147
 [31] handle
    @ ~/.julia/packages/HTTP/cxgat/src/Handlers.jl:270 [inlined]
 [32] #4
    @ ~/.julia/packages/HTTP/cxgat/src/Handlers.jl:346 [inlined]
 [33] macro expansion
    @ ~/.julia/packages/HTTP/cxgat/src/Servers.jl:406 [inlined]
 [34] (::HTTP.Servers.var"#13#14"{HTTP.Handlers.var"#4#5"{HTTP.Handlers.StreamHandlerFunction{Pluto.var"#178#188"{Pluto.ServerSession, Base.RefValue{Function}, HTTP.Handlers.Router{Symbol("##245")}}}}, HTTP.ConnectionPool.Transaction{Sockets.TCPSocket}, HTTP.Streams.Stream{HTTP.Messages.Request, HTTP.ConnectionPool.Transaction{Sockets.TCPSocket}}})()